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 05-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
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...
Responder Con Cita
  #2  
Antiguo 05-02-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 05-02-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
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||
Responder Con Cita
  #4  
Antiguo 05-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
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?
Responder Con Cita
  #5  
Antiguo 05-02-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
BDE es anticuado, hace muchos años que se abandonó.
Zeos es moderno, actual y muy completo.
Responder Con Cita
  #6  
Antiguo 05-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
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?
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

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


La franja horaria es GMT +2. Ahora son las 17:09:38.


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