[firebase-br] Recalculo de saldo (Trigger)

frguitar frguitar em bol.com.br
Qui Set 22 17:36:33 -03 2011


Boa tarde.


Eu refiz a trigger só que continuo não obtendo a atualização em todos os campos saldo após o atualizado, seria melhor pasar para uma Procedure?

Confesso que fiquei meio perdido, não consigo ver o pq não atualiza.





CREATE OR ALTER TRIGGER TRG_SALDO_UP FOR LANC
ACTIVE AFTER UPDATE POSITION 2
AS
DECLARE VARIABLE LANCAMENTO INTEGER;
DECLARE VARIABLE BANCOSALDO INTEGER;
DECLARE VARIABLE TOTCRED INTEGER;
DECLARE VARIABLE TOTDEB INTEGER;

BEGIN

SELECT SALDO_INI FROM CADBANCO WHERE CCONTA = NEW.CCONTA INTO :BANCOSALDO;
SELECT SUM (CREDITO) FROM LANC WHERE LANC_ID <= NEW.LANC_ID INTO :TOTCRED;
SELECT SUM (DEBITO) FROM LANC WHERE LANC_ID <= NEW.LANC_ID INTO :TOTDEB;

FOR SELECT SALDO
 FROM LANC
 WHERE lanc_id >  NEW.lanc_id
INTO :LANCAMENTO DO
BEGIN

 UPDATE LANC
 SET SALDO = :BANCOSALDO + :TOTCRED - :TOTDEB
 WHERE LANC_ID = :LANCAMENTO;
END


END




Att.

Fabiano 


--------------------------------------------


Bom dia Fabiano!

for select SALDO
     from LANC
     where lanc_id >  new.lanc_id
into :LANCAMENTO do
begin

   {TOTCRED e TOTDEB - serão sempre o mesmo para os demais lançamento? }

   update LANC
   set SALDO = :BANCOSALDO + :TOTCRED - :TOTDEB
   WHERE LANC_ID = :LANCAMENTO;
end



-- 
[]'s,

Hélio Oliveira
Bel. Ciência da Computação
Técnico em Contabilidade
e-mail : hpensador em gmail.com
Skype : hpensador
http://hpensador.blogspot.com/
www.hpensador.net
(71) 9975-9176




Mais detalhes sobre a lista de discussão lista