Fórum STORED PROCEDURE E TRIGGER INTERBASE #550801

08/04/2016

0

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

Responder

Posts

08/04/2016

Raylan Zibel

Qual o erro que aparece? Como ta a ddl de "CONTASRECEBER"?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar