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 <http://g.msn.com/8HMABRBR/2734??PS=47575> 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
