Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2005
jcpll jcpll is offline
Registrado
 
Registrado: feb 2005
Posts: 2
Poder: 0
jcpll Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 23-02-2005
lucianojdg lucianojdg is offline
Miembro
 
Registrado: dic 2003
Posts: 42
Poder: 0
lucianojdg Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 23-02-2005
lucianojdg lucianojdg is offline
Miembro
 
Registrado: dic 2003
Posts: 42
Poder: 0
lucianojdg Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:00:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi