Trigger não chama Procedure...
VBSHAR
sharmaq em terra.com.br
Sex Ago 1 12:20:09 -03 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 triger é:
===================================================
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?
Mais detalhes sobre a lista de discussão lista