[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