[firebase-br] O que falta ?

Carlos Fernando von Groll mameluke em pop.com.br
Qui Fev 3 11:03:45 -03 2005


As variáveis ES, MOVIES e CANCELADA não estão sendo inicializadas.
Então, provavelmente, contém um NULL.
Se esse for o caso, nenhuma condição seria avaliada como verdadeira.

> Sera que ta realmente entrando nos IF's?
> Talvez alguma exception dentro da trigger que ocorre mas nao e revelada.
> As triggers que eu usava pra saldo e movimento quando tinham valores
> incompativeis com os campos a triggers gerava exception e nao fazia nada mas
> eu tb nao sabia disso.
> Relatado meu caso... tenta ver se o seu e parecido. No mais, pelo que vi, ta
> tudo ok na triggers... nao vi nada de estranho ou errado no tocante sintaxe
>
>
> ----- Original Message -----
> From: "Auriston" <auristonlopes em ig.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Thursday, February 03, 2005 9:35 AM
> Subject: [firebase-br] O que falta ?
>
>
> As açoes abaixo quando as executo não surgem efeito, será que falta algo no
> delphi ou no codigo abaixo ?
> sds
> auriston
>
> Obs: DELPHI 7 / PALHETA INTERBASE / FIREBIRD
> /***
>     Trigger "Before Update" para "Movprod"
> ***/
> SET TERM ^;
> CREATE TRIGGER MovprodBU FOR Movprod ACTIVE BEFORE UPDATE POSITION 0
> AS
> DECLARE VARIABLE ES Varchar(1);
> DECLARE VARIABLE MOVIES Varchar(1);
> DECLARE VARIABLE CANCELADA Varchar(1);
> BEGIN
>     IF ((ES = 'S') AND (MOVIES = 'S') AND (CANCELADA = 'N')) THEN
>       UPDATE ESTOQUE SET
>         ESTOQUE = (ESTOQUE + OLD.SAIDAS) - NEW.SAIDAS
>         WHERE CODIGO = NEW.COD_MAT;
>     ELSE IF ((ES = 'E') AND (MOVIES = 'S') AND (CANCELADA = 'N')) THEN
>       UPDATE ESTOQUE SET
>         ESTOQUE = (ESTOQUE - OLD.ENTRADAS) + NEW.ENTRADAS
>         WHERE CODIGO = NEW.COD_MAT;
> END^
> SET TERM ;^
>
> /***
>     Trigger "Before Delete" para "Movprod"
> ***/
> SET TERM ^;
> CREATE TRIGGER MovprodBD FOR Movprod ACTIVE BEFORE DELETE POSITION 0
> AS
> DECLARE VARIABLE ES Varchar(1);
> DECLARE VARIABLE MOVIES Varchar(1);
> DECLARE VARIABLE CANCELADA Varchar(1);
> BEGIN
>     IF ((ES = 'S') AND (MOVIES = 'S') AND (CANCELADA = 'N')) THEN
>       UPDATE ESTOQUE SET
>         ESTOQUE = ESTOQUE + OLD.SAIDAS
>         WHERE CODIGO = OLD.COD_MAT;
>     ELSE IF ((ES = 'E') AND (MOVIES = 'S') AND (CANCELADA = 'N')) THEN
>       UPDATE ESTOQUE SET
>         ESTOQUE = ESTOQUE - OLD.ENTRADAS
>         WHERE CODIGO = OLD.COD_MAT;
> END^
> SET TERM ;^
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>





Mais detalhes sobre a lista de discussão lista