[firebase-br] Ajuda com Trigger.

Rodrigo de Moura rodrigo em datawin.com.br
Qua Nov 9 10:00:13 -03 2005


Bom dia Pessoal,

 Tenho a seguinte situação: uma tabela com os campos val_titulo, val_pgto_titulo, val_saldo_titulo
e o seguinte procedimento:
                                       val_titulo - val_pgto_titulo - val_saldo_titulo
lançamento do titulo(500) - 500        - 0                   - 500
baixa 1 (200)                   - 500        - 200               - 300
baixa 2 (100)                   - 500        - 300               - 200
baixa 3 (200)                   - 500        - 500               - 0

Criei a seguinte trigger que segue abaixo:

SET TERM !! ;
CREATE TRIGGER "SALDO_TITULO" FOR "TAB_TITULO"
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
  IF(INSERTING) THEN
  BEGIN
    UPDATE TAB_TITULO
       SET VAL_SLD_TITULO = NEW.VAL_TITULO
     WHERE COD_TITULO = NEW.COD_TITULO;
  END
  IF(UPDATING) THEN
  BEGIN
    UPDATE TAB_TITULO
       SET VAL_SLD_TITULO = VAL_SLD_TITULO + (OLD.VAL_TITULO - NEW.VAL_PGT_TITULO)
     WHERE COD_TITULO = NEW.COD_TITULO;

    UPDATE TAB_TITULO
       SET VAL_PGT_TITULO = VA_PGT_TITULO + NEW.VAL_PGT_TITULO
     WHERE COD_TITULO = NEW.COD_TITULO;
  END
END !!
SET TERM ; !!

Quando faço um insert beleza tudo tranquilo, mas quando faço uma atualização (uma baixa)
dá o seguinte erro: "Too many concurrent executions of the same request".
Onde estou errando? Utilizo Firebird 1.5.2.
Qualquer ajuda será bem vinda!!

Atenciosamente,

Rodrigo de Moura



Mais detalhes sobre a lista de discussão lista