Como essa tabela tem um campo chamado  id (serial) que é a pk, eu tava pensando em alterar os registros >= (data+id) do registro "mexido". Para efeito de relatório não deve alterar a data do lancamento, mas eu pensei em guardar essas alterações em outra tabela histórico.  Que vc acha Marcos?

Valeu.


From:  "marcos nobre" <[EMAIL PROTECTED]>
Reply-To:  Grupo de Usuários do PostgreSQL no Brasil<[email protected]>
To:  "Grupo de Usuários do PostgreSQL no Brasil"<[email protected]>
Subject:  Re: [PostgreSQL-Brasil] Atualização de campos
Date:  Thu, 22 Feb 2007 12:01:00 -0300

Opa, encaminhei sem querer. Naum completei minha dúvida, entaum segue denovo.

Em 22/02/07, marcos nobre <[EMAIL PROTECTED]
> escreveu:
ok.
Seja qual for o lancamento que algum usuário estiver mexendo, o trigger terá que ser disparado AFTER UPDATE e a programação ( o conteúdo) do trigger com certeza faz acesso aos dados do registro que está sendo afetado (no mínimo a PK do registro) daí tendo-se acesso a Data do Lancamento o barato é desenvolver um UPDATE que atualize saldo de qualquer lançamento com data superior à deste que foi "mexido".


Mas há 2 casos a se considerar (ainda):
a) O Saldos dos registros de mesma data a do registro que foi mexido;
b) O Saldos dos registros seguintes, ou seja, daqueles que tem data superior a do registro que foi mexido.


Porém ainda resta uma dúvida: O programa (do teu sistema) que permite que um lançamento seja modificado, permite inclusive que seja modificada a data de um lançamento ?

Isso faz uma forte diferença porque determina que o trigger ao invés de recalcular saldo mediando entre antes e depois do lançamento, poderia fazer um recalculo geral ! Sacou ? Esse procedimento pode ser mais fácil de ser desenvolvido, bastando para tal fazer uma análise de custo x benefício, levando-se em consideração:

1) Será que este programa de Alteração de Lançamentos vai ser muito utilizado?
2) Porque não gerar um lançamento de mesma data com valor contrário (para matar/anular o errado) e inserir o lançamento correto ? Contabilmente isso é bem correto e em termos de sistema, fica bem documentado o erro de lançamento.

3) Quantos milhoes de lançamentos conterão essa tabela? E que tal fazer um recalculo de saldo a partir do dia 1 do mes do lançamento errado (isso diminui a agressividade do trigger) ?

MN.


Em 22/02/07,
Maikel Dal Farra
<[EMAIL PROTECTED]> escreveu:

Caro Marcos Nobre

Isso mesmo, a tabela é assim. Como o Wallace disse acho que seria um trigger, mas a minha dúvida era em como atualizar somente os saldos após o lançamento, não mexendo nos saldos anteriores, ou seja, uma forma de corrigir um lançamento errado, entendem?

Obrigado pelo retorno de vcs.


From:  "marcos nobre" <
[EMAIL PROTECTED]
>

Reply-To:  Grupo de Usuários do PostgreSQL no Brasil<[email protected]
>

To:  "Grupo de Usuários do PostgreSQL no Brasil"<[email protected]
>

Subject:  Re: [PostgreSQL-Brasil] Atualização de campos
Date:  Thu, 22 Feb 2007 10:34:34 -0200


Xovê se entendi.

Pelo que parece em sua tabela de lançamentos, cada linha (lancamento em sí) traz o "saldo até então", algo do tipo


data-----lcmto---D_C-----saldo
04/02---10,00---C---------10,00
04/02---8,00-----C---------18,00
04/02---1,00-----D---------17,00
05/02---4,00-----C---------21,00
08/02---1,00-----C---------22,00
08/02---18,00---D---------4,00
09/02---20,00---C---------24,00

Se for esse o caso, estou pensando em um DML para te encaminhar.
Caso não seja, esclareça melhor essa tua tabela de lançamentos.
Imaginei que tua tabela deva conter uma data e que possa existir lançamentos a debito e a credito.


MN.


Em 22/02/07, Wallace Reis <
[EMAIL PROTECTED]
> escreveu:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Maikel Dal Farra wrote:
> Boa tarde, gostaria que alguém me ajudasse com um probleminha..
> Tenho um tabela  chamada CADSALDO com os seguintes campos:
> lancamento - numeric (7,2) e valorsaldo - numeric (7,2), (onde o
> saldo anterior é a soma do saldo atual com o lancamento),  preciso que

> ao corrigir um lançamento qualquer na tabela,todos os valorsaldo abaixo

> deste lancamento sejam recalculados.

Um trigger de UPDATE resolve, nao?

*
http://www.postgresql.org/docs/8.2/interactive/triggers.html

* http://www.postgresql.org/docs/8.2/interactive/sql-createtrigger.html


- --
wallace reis
Núcleo de Biologia Computacional e

Gestão de Informações Biotecnológicas/LABBI
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFF3Yb0LZIH+ybRHUMRAscFAKCrNZGuvfIrWtzRysRlAdRKCwvFnQCggtuS

yEaKc1HltqbdRAw2bCvAMOE=
=dmWF
-----END PGP SIGNATURE-----
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual

http://pgdocptbr.sourceforge.net/


Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios




--
Consultor em TI
Eng. Sistemas
----------------------------------------------
Keep in your mind:  
MS give us Windows,  Linux gives us the whole House.

>_______________________________________________
>Grupo de Usuários do PostgreSQL no Brasil
>Antes de perguntar consulte o manual
>

http://pgdocptbr.sourceforge.net/

>
>Para editar suas opções ou sair da lista acesse a página da lista em:
>
http://pgfoundry.org/mailman/listinfo/brasil-usuarios



Seja um dos primeiros a testar o novo Windows Live Mail Beta - grátis
Acesse
e inscreva-se agora!

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/


Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios




--
Consultor em TI
Eng. Sistemas
----------------------------------------------

Keep in your mind:  
MS give us Windows,  Linux gives us the whole House.



--
Consultor em TI
Eng. Sistemas
----------------------------------------------
Keep in your mind:  
MS give us Windows,  Linux gives us the whole House.

>_______________________________________________
>Grupo de Usuários do PostgreSQL no Brasil
>Antes de perguntar consulte o manual
>http://pgdocptbr.sourceforge.net/
>
>Para editar suas opções ou sair da lista acesse a página da lista em:
>http://pgfoundry.org/mailman/listinfo/brasil-usuarios



O Windows Live Spaces é seu espaço na internet com fotos (500 por mês), blog e agora com rede social. Particpe também!
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a