Fórum problema com sintaxe de Trigger #209670
26/01/2004
0
Estou desenvolvendo um sistema e tenho o seguinte problema:
Antes de excluir um departamento preciso verificar se ao acaso existe um projeto que esteja subordinado a este departamento. Desta forma deve-se impedir sua exclusão. Caso contrário, transferir todos os empregados associados para um departamento específico.
Criei o seguinte Trigger no Interbase:
SET TERM #;
CREATE TRIGGER EXCLUI_DEPARTAMENTO FOR DEPARTAMENTO BEFORE DELETE AS
DECLARE VARIABLE CODIGO_DEPARTAMENTO INTEGER;
BEGIN
IF (NOT EXISTS (SELECT * FROM PROJETO WHERE COD_DEPTO = OLD.COD_DEPTO)) THEN
EXIT; [color=red:229beda0fb]o Iterbase detecta un erro aqui...[/color:229beda0fb]
FOR SELECT * FROM EMPREGADO WHERE COD_DEPTO = OLD.COD_DEPTO INTO :CODIGO_DEPARTAMENTO
DO BEGIN
SUSPEND;
UPDATE EMPREGADO SET COD_DEPTO = 2 WHERE COD_DEPTO = OLD.COD_DEPTO;
END;
END #
SET TERM ;
Alguem pode me ajudar? Obrigado
Antes de excluir um departamento preciso verificar se ao acaso existe um projeto que esteja subordinado a este departamento. Desta forma deve-se impedir sua exclusão. Caso contrário, transferir todos os empregados associados para um departamento específico.
Criei o seguinte Trigger no Interbase:
SET TERM #;
CREATE TRIGGER EXCLUI_DEPARTAMENTO FOR DEPARTAMENTO BEFORE DELETE AS
DECLARE VARIABLE CODIGO_DEPARTAMENTO INTEGER;
BEGIN
IF (NOT EXISTS (SELECT * FROM PROJETO WHERE COD_DEPTO = OLD.COD_DEPTO)) THEN
EXIT; [color=red:229beda0fb]o Iterbase detecta un erro aqui...[/color:229beda0fb]
FOR SELECT * FROM EMPREGADO WHERE COD_DEPTO = OLD.COD_DEPTO INTO :CODIGO_DEPARTAMENTO
DO BEGIN
SUSPEND;
UPDATE EMPREGADO SET COD_DEPTO = 2 WHERE COD_DEPTO = OLD.COD_DEPTO;
END;
END #
SET TERM ;
Alguem pode me ajudar? Obrigado
Marcos Pira
Curtir tópico
+ 0
Responder
Posts
27/01/2004
Wolverine
o SQL ñ reconhece EXIT(eu acho, quase certeza), vc tera q passar esta intrução por paranmetro
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)