[firebase-br] O que falta ?

Marcilio Soares marcilio.soares em brfree.com.br
Qui Fev 3 12:01:33 -03 2005


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







Mais detalhes sobre a lista de discussão lista