[firebase-br] Trigger com Inclusão ou Atualização

Roberto - Sui Generis roberto em suigenerisinf.com.br
Qui Jul 7 15:03:53 -03 2005


Estou querendo fazer uma Trigger para guardar o Saldo do Produto na Tabela SALDO_ESTOQUE
mas na Linha do "Insert Into" (última linha), está fazendo a inclusão dos registros sem parar, ou melhor, está entrando em loop (laço).... O que está faltando ???

CREATE TRIGGER PRODUTOS_AIU0 FOR PRODUTOS
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
declare variable DataSaldo date;
declare variable Produto Varchar(20);
begin
  for Select DATA, ITEM_ID from SALDO_ESTOQUE
    where ((DATA = CURRENT_DATE) and (ITEM_ID = NEW.ITEM_ID))
    into :DataSaldo, :Produto do
    begin
      if (Produto = NEW.ITEM_ID) then
      begin
        update saldo_estoque set SALDO = SALDO + (NEW.EST_ATUAL - OLD.EST_ATUAL);
      end
      else
      begin
        insert into saldo_estoque (DATA,ITEM_ID,SALDO) values(CURRENT_DATE, NEW.ITEM_ID, NEW.EST_ATUAL - OLD.EST_ATUAL);
      end
    end
end
    

[]'s
       Roberto Krug
  Sui Generis Informática
Novo Hamburgo - RS - Brasil
roberto em suigenerisinf.com.br
  Interbase / Firebird DBA
    Delphi 7 - IBX 7.08





Mais detalhes sobre a lista de discussão lista