Problema com Trigger InterBase

01/07/2003

0

Bom dia!

Gostaria que alguem me ajudasse a entender. Eu tenho uma tabela de prudutos, uma de orçamento e uma de produtos do orçamento.
Na tabela orçamento eu tenho o campo status que guarda os valores ´aberto´ e ´fechado´. Sendo assim eu criei um Trigger que para o
AFTER UPDATE da tabela orçamento. Quando o orçamento se torna fechado o Trigger da baixa no campo quantidade da tabela produto de acordo com a quantidade no orçamento.
Entretanto, eu crio o Trigger ele funciona normalmente entretanto no outro dia ele para de funcionar ´sem mais nem menos´.

O codigo é o seguinte:

SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER ´ACERTAESTOQUEORC´ FOR ´TABORCAMENTO´
ACTIVE AFTER UPDATE POSITION 0
AS
DECLARE VARIABLE CODFAMILIA INTEGER;
DECLARE VARIABLE CODPRODUTO VARCHAR(12);
DECLARE VARIABLE QUANTIDADE NUMERIC(7, 2);
DECLARE VARIABLE QUANTPROD NUMERIC(7, 2);
BEGIN
IF ((OLD.ORC_STATUS <> ´FECHADO´) AND (NEW.ORC_STATUS = ´FECHADO´)) THEN
BEGIN
FOR SELECT FAM_CODIGO, PRO_CODIGO, POR_QUANTIDADE FROM TABPRODUTOORC
WHERE ORC_NUMERO = NEW.ORC_NUMERO INTO :CODFAMILIA, :CODPRODUTO, :QUANTIDADE DO
BEGIN
SELECT PRO_QUANTIDADE FROM TABPRODUTO WHERE FAM_CODIGO = :CODFAMILIA AND PRO_CODIGO = :CODPRODUTO INTO :QUANTPROD;
UPDATE TABPRODUTO SET PRO_QUANTIDADE = :QUANTPROD - :QUANTIDADE WHERE FAM_CODIGO = :CODFAMILIA AND PRO_CODIGO = :CODPRODUTO;
END
END
ELSE
IF ((OLD.ORC_STATUS = ´FECHADO´) AND (NEW.ORC_STATUS <> ´FECHADO´)) THEN
BEGIN
FOR SELECT FAM_CODIGO, PRO_CODIGO, POR_QUANTIDADE FROM TABPRODUTOORC
WHERE ORC_NUMERO = NEW.ORC_NUMERO INTO :CODFAMILIA, :CODPRODUTO, :QUANTIDADE DO
BEGIN
SELECT PRO_QUANTIDADE FROM TABPRODUTO WHERE FAM_CODIGO = :CODFAMILIA AND PRO_CODIGO = :CODPRODUTO INTO :QUANTPROD;
UPDATE TABPRODUTO SET PRO_QUANTIDADE = :QUANTPROD + :QUANTIDADE WHERE FAM_CODIGO = :CODFAMILIA AND PRO_CODIGO = :CODPRODUTO;
END
END
END
^

COMMIT WORK ^
SET TERM ;^


Paulolara

Paulolara

Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar