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

Responder a