![]() |
Generación de TRIGGERS desde DELPHI
Tengo una aplicación encargada de ponerse en contacto con una base de datos Oracle 8i y crear una serie de TRIGGERS.
Estoy empleando el componente TADOCOMMAND y la verdad es que funciona todo excepto en casos en los que aparecen el simbolo ':' como es el caso del siguiente comando CREATE OR REPLACE TRIGGER "EJEM"."NAMETRIGGER" BEFORE DELETE ON "EJEM"."NAME_TABLE" FOR EACH ROW BEGIN ELIMINARDOCUMENTOGASTO(:OLD.DATO); END; Tal como yo veo el problema es que considera :OLD como parametro cuando es texto puro y duro. Obviamente si ejecuto esa consulta desde el TOAD u otro programa similar funciona. He probado modificando las propiedades PARAMCHECK y PREPARED que tiene el TADOCOMMAND y sin embargo sigue fallando. Tambien he probado a sustituir : por :: y tampoco funciona, lo curioso del tema es que si quito : el trigger es creado aunque logicamente me da un error al compilarlo ya que no sabe lo que es :OLD.DATO Gracias y un saludo |
No estoy seguro de que esto funcione, ya que no tengo Oracle para probarlo, pero podrias probar cambiar los terminadores.
SET TERM ^ : CREATE OR REPLACE TRIGGER "EJEM"."NAMETRIGGER" BEFORE DELETE ON "EJEM"."NAME_TABLE" FOR EACH ROW BEGIN ELIMINARDOCUMENTOGASTO(^OLD.DATO); END; SET TERM : ^ espero te sirva Saludos |
Perdon, me doy cuenta que estamos en la misma... no va a funcionar porque de todas maneras, para cambiar los terminadores hay que hacer referencia a los dos puntos... :)
Lo unico que se me ocurre es que te consigas algun componenete en el que se puedan ejecutar scripts. Algo similar al IBScript que viene para Interbase pero para ADO... Saludos |
La franja horaria es GMT +2. Ahora son las 05:14:49. |
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