Trigger não chama procedure

Firebird

01/08/2008

Bom dia


pessoal, eu tenho uma base FB 1.5 e nela uma procedure que serva para atualizar o valor pago de uma conta, esta procedure é chamada por uma trigger numa tabela de cheques recebidos. Seguem as mesmas:

A procedure:
CREATE PROCEDURE ATUALIZA_SALDO_PAGAR (
    COD_LANCTOS INTEGER)
AS
DECLARE VARIABLE TOTAL_GERAL NUMERIC(12,2);
DECLARE VARIABLE TOTAL_CHEQUE NUMERIC(12,2);
DECLARE VARIABLE TOTAL_CARTAO NUMERIC(12,2);
DECLARE VARIABLE TOTAL_BOLETOS NUMERIC(12,2);
begin
  /*TOTALIZA O JA PAGO EM CHEQUES*/
     SELECT COALESCE(SUM(VALOR),0)
       FROM contas_cheques
       WHERE COD_LANCTO=:COD_LANCTOS and contas_cheques.COMPENSADO=´S´
       INTO :TOTAL_CHEQUE;
  /*TOTALIZA O JA PAGO EM CARTOES*/
     SELECT COALESCE(SUM(VALOR),0)
       FROM contas_cartoes
       WHERE COD_LANCTO=:COD_LANCTOS and contas_cartoes.pago=-1
       INTO :TOTAL_CARTAO;
  /*TOTALIZA O JA PAGO EM BOLETOS*/
     SELECT COALESCE(SUM(VALOR),0)
       FROM contas_boletos
       WHERE COD_LANCTO=:COD_LANCTOS and contas_boletos.pago=-1
       INTO :TOTAL_BOLETOS;
  /*UNE TODAS AS VARIAVEIS NUM SO*/
  TOTAL_GERAL=TOTAL_CHEQUE + TOTAL_CARTAO;

  UPDATE contas_lancamentos
  SET CONTAS_LANCAMENTOS.valor_pago=:TOTAL_GERAL
  WHERE CONTAS_LANCAMENTOS.CODIGO=:COD_LANCTOS;

/*SE O VALOR PAGO FOR IGUAL OU MAIOR QUE O VALOR DEVIDO POE A CONTA COMO PAGA*/

  UPDATE contas_lancamentos
  SET CONTAS_LANCAMENTOS.pago=-1
  WHERE CONTAS_LANCAMENTOS.CODIGO=:COD_LANCTOS AND CONTAS_LANCAMENTOS.VALOR_PAGAR<=contas_lancamentos.valor_pago;
  suspend;
End


A trigger:

CREATE TRIGGER CONTAS_CHEQUES_AIUD0 FOR CONTAS_CHEQUES
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
    execute procedure ATUALIZA_SALDO_PAGAR NEW.CODIGO;
end



Bom, a procedure funciona se eu chamar ela manualmente pelo IBExpert, mas quando eu altero a tabela cheques a trigger parece não disparar a procedure. Não dá mensagem de erro nenhum, só não funciona....

O que pode ser?


Vbshar

Vbshar

Curtidas 0
POSTAR