STORED PROCEDURE E TRIGGER INTERBASE

Delphi

08/04/2016

BOM DIA,
TENHO UMA STORED PROCEDURE E UMA TRIGGER.
ESTOU COM PROBLEMAS DE CALCULO DENTRO DA TRIGGER QUE ENVIA O RESULTADO PARA A STORED PROCEDURE VEJA O EXEMPLO.



CREATE PROCEDURE "SET_SALDO_CLIENTE"
(
"PCLIENTE" INTEGER,
"PVALOR" NUMERIC(15, 2)
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE "SET_SALDO_CLIENTE"
(
"PCLIENTE" INTEGER,
"PVALOR" NUMERIC(15, 2)
)
AS
begin
update cliente
set totalaberto = totalaberto +:pValor
where codigo = :pCliente;
END
^

------------------------------------------------------------------------------------------------------------
CREATE TRIGGER TRG_CONTASRECEBER_BU FOR CONTASRECEBER
ACTIVE BEFORE UPDATE
as
begin
new.usuario = user;
new.datainclusao = 'now';

EXECUTE PROCEDURE SET_SALDO_CLIENTE(NEW.CLIENTE, NEW.VALOR - OLD.VALOR);

IF (NEW.DATADOPAGAMENTO IS NOT NULL) THEN
BEGIN
EXECUTE PROCEDURE SET_SALDO_CLIENTE(NEW.CLIENTE, -(NEW.RECEBIDO - OLD.RECEBIDO));
END
END
^
--------------------------------------------------------------------------------------------
O PROBLEMA ESTÁ NESTA NAS 2 LINHAS DA TRIGGER:
EXECUTE PROCEDURE SET_SALDO_CLIENTE(NEW.CLIENTE, NEW.VALOR - OLD.VALOR);
EXECUTE PROCEDURE SET_SALDO_CLIENTE(NEW.CLIENTE, -(NEW.RECEBIDO - OLD.RECEBIDO));
NEW.VALOR - OLD.VALOR) : NAO FUNCIONA
-(NEW.RECEBIDO - OLD.RECEBIDO)) : TAMBEM NAO FUNCIONA

VOCES PODEM AJUDAR-ME?
ESTOU USANDO INTERBASE 6.0 e INTEBASE XE7.

ENVIE UM EMAIL PARA: estefano310249@hotmail.com
OBRIGADO
-----------------------------
CHARLES E.CASTRO
Charles Castro

Charles Castro

Curtidas 0

Respostas

Raylan Zibel

Raylan Zibel

08/04/2016

Qual o erro que aparece? Como ta a ddl de "CONTASRECEBER"?
GOSTEI 0
POSTAR