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.
[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
