GARANTIR DESCONTO

Fórum Trigger - Problemas #175909

19/08/2003

0

Alguém sabe me dizer onde está o erro nesse trigger que volta o estoque?

CREATE TRIGGER VOLTA_ESTOQUE FOR NOTA
ACTIVE AFTER DELETE POSITION 0
AS
Declare variable CODCUPOM varchar(10);
Declare variable CODPROD integer;
Declare variable QTD Numeric(4,3);
begin
FOR
   SELECT I.CODCUPOM, I.QTD, I.CODPROD
   FROM ITEM I
   WHERE I.CODCUPOM = NOTA.CODNOTA
   INTO :CODCUPOM, :QTD, :CODPROD
DO
   BEGIN
       UPDATE PRODUTOS E
       SET ESTOQUE = (ESTOQUE + :QTD)
       WHERE E.CODPROD = :CODPROD;

       DELETE FROM ITEM I
       WHERE I.CODCUPOM = NOTA.CODNOTA;

   END
SUSPEND;
end 


Erro:

[b:0469efb30e]Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown.
RETURN. [/b:0469efb30e]


=(
Falow


Fer

Fer

Responder

Posts

19/08/2003

Abueno_silva

Bom, a msg de erro está um pouco estranha, realmente. Mas acho que você deveria tentar o seguinte (nem tanto pelo erro, mas pela lógica do trigger):

- troque as referências de NOTA por OLD;
- retire o delete da tabela itens do loop do for (se não ele vai tentar dar delete toda vez que ler um item);

[]´s


Responder

Gostei + 0

19/08/2003

Fer

ola amigos ... continuo com o mesmo problema =(
mas valeuuuuu =)


Responder

Gostei + 0

19/08/2003

Abueno_silva

Só mais uma pergunta: você está usando o set term na criação do trigger?

Ex.:

set term ^ ;

CREATE TRIGGER
....

set term ; ^

Isso atrapalha na criação, porque se não fizer a inversão de terminador, o IB/FB vai entender que o primeiro ; do código do trigger é o final do comando CREATE TRIGGER, então dá pau.

[]´s


Responder

Gostei + 0

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

Aceitar