STORED PROCEDURE E TRIGGER INTERBASE
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
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
Curtidas 0
Respostas
Raylan Zibel
08/04/2016
Qual o erro que aparece? Como ta a ddl de "CONTASRECEBER"?
GOSTEI 0