[firebase-br] depurar SQL, tem como ?

auristonlopes auristonlopes em ig.com.br
Sáb Fev 19 22:56:17 -03 2005


dados os codigos abaixo pergunto: 

CREATE TRIGGER MovprodBI FOR Movprod ACTIVE BEFORE INSERT POSITION 0 
AS 
declare variable ES Varchar(1); 
declare variable MOVIES Varchar(1); 
declare variable CANCELADA Varchar(1); 
BEGIN 
    Select ES,MOVIES,CANCELADA from MOVPROD where COD_MAT = NEW.COD_MAT INTO 
:ES, :MOVIES, :CANCELADA; 
    IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'S')) THEN 
       BEGIN 
          UPDATE ESTOQUE SET ESTOQUE = (ESTOQUE - NEW.SAIDAS) WHERE CODIGO = 
NEW.COD_MAT; 
       END 
    ELSE 
       IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'E')) THEN 
          BEGIN 
             UPDATE ESTOQUE SET ESTOQUE = (ESTOQUE + NEW.ENTRADAS) WHERE 
CODIGO = NEW.COD_MAT; 
          END 
END 

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 
    Select ES,MOVIES,CANCELADA from MOVPROD where COD_MAT = OLD.COD_MAT INTO 
:ES, :MOVIES, :CANCELADA; 
    IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'S')) THEN 
       BEGIN 
          UPDATE ESTOQUE SET ESTOQUE = (ESTOQUE + OLD.SAIDAS) - NEW.SAIDAS 
WHERE CODIGO = NEW.COD_MAT; 
       END 
    ELSE 
       IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'E')) THEN 
          BEGIN 
             UPDATE ESTOQUE SET ESTOQUE = (ESTOQUE - OLD.ENTRADAS) + 
NEW.ENTRADAS WHERE CODIGO = NEW.COD_MAT; 
          END 
END 

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 
    Select ES,MOVIES,CANCELADA from MOVPROD where COD_MAT = OLD.COD_MAT INTO 
:ES, :MOVIES, :CANCELADA; 
    IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'S')) THEN 
       BEGIN 
          UPDATE ESTOQUE SET ESTOQUE = ESTOQUE + OLD.SAIDAS WHERE CODIGO = 
OLD.COD_MAT; 
       END 
    ELSE 
       IF ((CANCELADA = 'N') AND (MOVIES = 'S') AND (ES = 'E')) THEN 
          BEGIN 
             UPDATE ESTOQUE SET ESTOQUE = ESTOQUE - OLD.ENTRADAS WHERE 
CODIGO = OLD.COD_MAT; 
          END 
END^ 
SET TERM ;^ 

por que o evento delete funciona e os outros nao funciona, se alguem puder 
me ajudar, me socorra. 
fiz um teste com o ibexpert e os eventos funcionaram, so nao funciona na 
minha aplicacao, sera que tem uma maneira de depurar estes codigos, para que 
eu veja se ele realmente estao sendo chamados pelo BD ??? 
sds 
auriston 


Mais detalhes sobre a lista de discussão lista