Delphi - Ejecutar script en Delphi

   
Vista:

Ejecutar script en Delphi

Publicado por Juan Rodriguez Sanchez (47 intervenciones) el 04/03/2009 12:14:43
Hola a todos!!!!

Tengo un archivo script (xxx.sql) el cual contiene un montón de insert sobre la base de datos (my base de datos es mysql) .¿Como puedo lanzarlo desde delphi? (delphi 7) He estado probando con la instrucción WinExec y usando el comando mysql pero no me lo lanza, parece ser que sólo es válido para los "restore" de la base de datos.

He estado buscando información sobre ésto y parece que se puede pasar la ruta del script y lanzarlo como un select, la verdad es que no se si se podrá hacer así. Por favor, si alguien sabe algo...estoy esperándolo.

Gracias de antemano a todo el que pueda echarme un cable.

Saludos!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar script en Delphi

Publicado por E.T. (1106 intervenciones) el 04/03/2009 17:24:33
Ya has probado lo que se habla en estas notas?:

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=23&texto=Delphi&n1=525945&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Si ya lo probaste, y no funciona puedes usar un query y lanzar sentencia por sentencia

Query1.SQL.Add('Insert into tabla datos campos')
Query1.ExecSQL;

Ojo, no se usa query1.open, pues no funciona porque no es una sentencia de búsqueda, sino de modificación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar script en Delphi

Publicado por Cesar (1 intervención) el 20/03/2012 00:29:24
Amigo E.T. Gracias por esa ACLARACION u Observación del Open y ExecSQL; Excelente ya llevaba un día buscando la solución, pero tú me la diste, Gracias amigo!! E.T:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar script en Delphi

Publicado por Juan Rodriguez Sanchez (47 intervenciones) el 04/03/2009 18:09:57
Hola E.T.:

Ante todo muchas gracias por preocuparte y responder a mi pregunta, te cuento:

Navegando he descubierto la existencia del componente TUpdateSQL que con su método "InsertSQLLoadFromFile" me permite coger el script donde están los inserts y almacenarlo. He leido que hay que asociarle el componente a un query, y a continuación lanzar la query para ejecutar el script.

Mi pregunta es como lanzo la query?? parece ser que no es el típico ExecSQL - open.

No puedo lanzar las consultas una a una por que no las conoceré antes de lanzar el programa, es decir no conoceré los inserts hasta que no esté ejecutando el programa y los tendré en un script, por lo tanto creo que lo que estoy pensando me puede valer.

Te paso el trozillo de código que he hecho para poder capturar el fichero y asociarlo a la query:


bd.InsertSQL.LoadFromFile('C:insert.sql'); //bd es del tipo TUpdateSQL
showmessage(bd.InsertSQL.Text); // ME MUESTRA EL SCRIPT :)

qrydb.UpdateObject := bd; //asocio a la query el componente TUpdateSQL
qrydb.CachedUpdates := true; //he leido que ésta propiedad hay que activarla.

COmo ya te dije, me faltaría terminar de ajustar las propiedades y lanzar la query,...a ver si me podeís echar un cable....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar script en Delphi

Publicado por E.T. (1106 intervenciones) el 04/03/2009 20:11:41
Que tal, pues nunca he usado ese componente, y no sabria decirte de su funcionalidad, igual no estoy seguro de que te ejecute linea a linea el script, como quiera va a tratar de ejecutar todo como una sola sentencia, pero segun lei para ejecutar el insert solo usas esto

bd.Insert;

creo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar script en Delphi

Publicado por Juan Rodriguez Sanchez (47 intervenciones) el 05/03/2009 10:26:03
Buenas a todos!!!
E.T. no no me vale esa instrucción (agradezco muchisimo tu atención) la verdad es que ya no estoy tan seguro de que ese componente (TUpdateSQL) me pueda servir para lanzar el script con los insert. Lo que me extraña es que no encuentre nada ya que creo que lanzar un script con una serie de instrucciones SQL es algo que debe ser 'comun' y no tan raro.
Seguiré dándole una vuelta más, sino tendré que probar con otros métodos.

Gracias y Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar script en Delphi

Publicado por Juan Rodriguez Sanchez (47 intervenciones) el 09/03/2009 17:13:16
Bueno, ....al final decidí por darle una vuelta más al comando winexec. con ésta instrucción si que se puede lanzar el scritp compuesto solo por insert, descubrí que el error estaba en el fichero que le estaba pasando, ya que al comienzo del fichero se metian 3 caracteres de 'basura' que hacian que se produjera un error interno del cual yo no obtenia resultados por pantalla. Con el parámetro --force dentro de la instrucción WinExec lo conseguí arreglar, ya que con --force se fuerza a que se lanzen todas las sentencias del script aunque se produzca un fallo en alguna de ellas.

Gracias a todos, en especial a E.T. por estar siempre ahí..... :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar