FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Ejecutar Script *.SQL desde Delphi
Hola gente, ya se que si se pregunto lo mismo en otros temas, pero ninguna respuesta satisfizo una solucion para mi...
Planteo brevemente: Utilizo el motor MySQL Server 5.0, y generé un Back Up de mi base de datos, devolviendome el archivo: <mi_bd .sql>, el cual contiene las instrucciones para crear /*si no exise*/ la base de datos y sus tablas... Ahora bien, mi pregunta es: -- ¿Como Restaurar dicha base de datos (mi_bd .sql) desde delphi? (Mi intencion es que cuando ejecute por 1ra vez la aplicacion que estoy realizando, pues a la vez tambien se cree la bd). Ya Restauré desde la linea de comandos de DOS, con lo siguiente: ------------------------------------------------------------------------- 1) Primero me situé en la carpeta de los binarios de MySQL, con el comando 'CD' de DOS: Código:
C:\Document and Settings\Administrador> CD "c:\Archivos de programa\MySQL\MySQL Server 5.0\Bin" 4) Luego Restauré Satisfactoriamente un script <mi_bd.sql> desde DOS, así: Código:
C:\Archivos de programa\MySQL\MySQL Server 5.0\Bin> MySQL --user=root --password=root mi_bd < c:\ mi_bd.sql Ahora bien, esos mismos comandos de Restauracion que sí funcionaron en DOS, los apliqué infructuosamente, esta vez desde Delphi con WinExec, así: Código Delphi [-]WinExec(PChar('cmd /c CD "c:\Archivos de programa\MySQL\MySQL Server 5.0\Bin">MySQL --user=root --password=root mi_db < c:\mi_bd.sql'), SW_Hide); ------------------------------------------------------------------------ Intente mas posibles convinaciones con winexec pero, ninguna che! ya llevo un dia entero intentando! que bajon! Si tienen alguna solucion... o alguna correccion, o si tal vez intento con ShellEXEcute? pero cual sería la sintaxis exacta? (y fuera de tema, si alguien trabajo con delphi-mysql, que archivos son necesarios instalar de dicho Motor? claro, la idea es resumir en <un solo> instalador: el motor de base de datos, la conexion obdc, la creacion de la estructura de la base de datos, y el ejecutable... o tal vez en 2, dado que mysql es externo... Desde ya, gracias... |
#2
|
||||
|
||||
El "WinExec" no funciona porque no estás pasando correctamente los parámetros, aparte de que la redirección de la corriente de entrada para el nuevo proceso (el caracter "<" del comando) no creo que sea reconocido como tal.
Si quieres hacerlo desde Delphi, lo que deberías hacer es cargar el archivo SQL, conectar directamente con la base de datos y pasarle el guión (script) utilizando los componentes adecuados. Es posible que debas dividir el archivo para pasarle los comandos SQL uno a uno (el separador suele ser el caracter punto y coma) y quizá también eliminando los comentarios. |
#3
|
||||
|
||||
Como dice nuño es correcto, inclusive es más sencillo usar por ejemplo ZSQLProcessor de las Zeos y le cargas el script directamente y lo ejecutas desde ahi.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
|||
|
|||
Gracias Muño, gracias Azid.
Tenía entendido que si se podia con winexec... Bueno, la cuestion es que e decidido pasar cada una de los comandos SQL embibidos en el codigo Delphi... Ahora bien mi duda es la siguiente... Hasta ahora e utilizado componentes de BDE (TQuery,TDataBase...) con MySQL Server 5.0, sin ningun problema Los componentes Zeos los conosco por teoria nomas y e visto su sencillez, ahora bien... me plantea la duda, cual es mejor? BDE vs ZEUS? o tal vez existe algun otro componente mejor para manejar bases de datos? en definitiva, cual me recomiendan? y cual serían los archivitos (.dll,...) necesarios para instalar en la pc del usuario? ----------------------------------------------------------------------------------------- En todo caso, si uso directamente un componente como ustedes me recomiendan, el componente que use, requiere una conexion inicial con el <aliasname> de una base de datos. y partiendo del hecho de que la primera vez que corra la aplicacion, pues no existirá ni la base de datos ni su alias obdc que requiere dicha aplicacion... a que bd conecto entonces dicho componente? |
#5
|
||||
|
||||
BDE es anticuado, hace muchos años que se abandonó.
Zeos es moderno, actual y muy completo. |
#6
|
|||
|
|||
Gracias Casimiro. Ahora bien, con el bde,utilizaba unos archivos controladores (BdeInst.dll, minireg.exe) que los instalaba junto con el innosetup en otra pc sin delphi.
Con el zeos, cuales de estos archivos son necesarios? o directamente pongo el ejecutable delphi en otra pc y ya corre? Ah, y e visto que existen varias versiones de Zeos, cual es mas recomendable? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ejecutar script desde el isql | victork_py | Firebird e Interbase | 9 | 25-05-2017 20:56:54 |
Ejecutar script | toni.vi | Conexión con bases de datos | 6 | 19-02-2009 12:51:53 |
Ejecutar script sql en firebird | jlalvarez | Firebird e Interbase | 8 | 05-03-2008 01:25:42 |
Ejecutar Script SQL con DELPHI | patay | SQL | 1 | 06-08-2007 18:12:26 |
Componente ejecutar Script | buitrago | Conexión con bases de datos | 3 | 27-11-2003 09:40:54 |
|