FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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
__________________
Luciano DG |
#3
|
|||
|
|||
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
__________________
Luciano DG |
|
|
|