![]() |
Procedure Y Trigger
hola amigos, imaginemos que tenemos este procedure:
CREATE PROCEDURE BORRAR_ALBARAN ( PNUMERO INTEGER) AS BEGIN DELETE FROM ALBARANES WHERE NUMERO=:pNUMERO; /* Procedure body */ SUSPEND; END este procedure borraria la linea en la tabla maestro donde el numero sea igual al numero, el trigger asociado ANTES de borrar en albaranes para borrar en LINEAALBARANES tengo una duda: CREATE TRIGGER PROPAGAR_BORRADO_LALBARANES FOR ALBARANES BEFORE DELETE AS BEGIN DELETE FROM LINEAALBARANES WHERE NUMERO=old.NUMERO AND ANNO=old.ANNO; /*y aqui viene mi duda: por que me da error de compilacion? me sale esto: fmCompile.quCompile: Invalid token. Dynamic SQL Error. SQL error code = -104. Unexpected end of command.*/ END NACLU2:confused: |
Me parece que el error es que te falta un "End;" al final del trigger...
Saludos! |
Hola!
Prueba a creartelo así: Código:
SET TERM ;^ |
Solo comento que Interbase/Firebird soporta automáticamente actualizaciones y borrados en cascada, asi que si queres que se eliminen automáticamente los detalles de una tabla, al crear el constraint basta con añadir:
on delete cascade; y listo. La base de datos se encarga y no tenes que programar vos estos triggers. Hasta luego. ;) pd. otra cosa... en el procedure Borrar_Albaran... no se si hay algo mas, pero no le veo sentido a la sentencia Suspend; |
Cita:
|
La franja horaria es GMT +2. Ahora son las 03:13:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi