PDA

Ver la Versión Completa : MySQL al Inicio


RebeccaGL
22-08-2010, 15:47:24
Emigre de Paradox a MySQL, pero alguien me podria ayudar en lo siguiente:

Antes quiero decirles que el sistema me funciona bien enm mi pc, pero para enviarlo a otra pc necesito que el sistema sea inteligente que cree su propia conexion, usuarios y database y restaure sus tablas. ¿como lo hago?

Hacer estas tareas desde Delphi.

1.- Crear una conexion -h hostname -u user -p pass en el servidor Mysql
2.- Crear un usuario remoto o mas con privilegios
3.- Crear la database y luego restarurar las tablas ya creadas previamente.

AzidRain
23-08-2010, 17:41:40
Es sencillo, puedes usar cualquier componente query o bien ZScript si usas Zeos. Escribes los comandos que utilizarías si lo hicieras manualmente y lo ejecutas en el servidor. Por otro lado el enfoque que le estas dando es como si fuera precisamente Paradox. Aqui ya no hablamos de simplemente copiar los archivos .DBF o .DBX. MySQL y los demás servidores de datos basados en SQL, tienen otra forma de trabajar diametralmente opuesta.

Si ya tienes funcionando tu programa supongo que también tienes funcionando tu servidor, en ese caso solo necesitas modificar la forma como haces la conexión ya que al irte a otra pc la dirección del host ya no es localhost sino la que corresponda a la pc donde instalaste el servidor. Por ejmplo si tu pc donde te funciona bien tiene la ipc 192.168.1.66 o bien se llama "PCOFICINA" coloca ese dato en el componente con el que haces la conexión y verás que ya te funciona en otras pcs.

RebeccaGL
24-08-2010, 15:26:04
Es sencillo, puedes usar cualquier componente query o bien ZScript si usas Zeos. Escribes los comandos que utilizarías si lo hicieras manualmente y lo ejecutas en el servidor. Por otro lado el enfoque que le estas dando es como si fuera precisamente Paradox. Aqui ya no hablamos de simplemente copiar los archivos .DBF o .DBX. MySQL y los demás servidores de datos basados en SQL, tienen otra forma de trabajar diametralmente opuesta.

Si ya tienes funcionando tu programa supongo que también tienes funcionando tu servidor, en ese caso solo necesitas modificar la forma como haces la conexión ya que al irte a otra pc la dirección del host ya no es localhost sino la que corresponda a la pc donde instalaste el servidor. Por ejmplo si tu pc donde te funciona bien tiene la ipc 192.168.1.66 o bien se llama "PCOFICINA" coloca ese dato en el componente con el que haces la conexión y verás que ya te funciona en otras pcs.

AziRain gracis por responder, todo eso ya lo se.

Mira te explico mejor...

Si yo le vendo este programa a una persona, esta persona no tiene en su pc instalado el servidor MySQL ni mi programa ni la base de datos, pero podra instalarlos desde un CD, una vez instalado el servidor instalara mi programa pero mi programa no funcionara si no existe la base de datos en el servidor entiendes, para eso antes de que funcione mi programa, dicho programa tendra que hacer un restore de la database hacia el servidor asi, mi programa podra funcionar y trabajar dichas tablas y si quieren conectarse desde otro pc lo podran hacer por medio de la IP.

Programa. VENTAS.EXE
Base de Datos. ventas_backup.sql

Conclusion. hacer un restore desde delphi. El caracter "<" ">" para redireccionar no lo reconoce el ShellExecute alguna alternatica?.

Nota. La base de datos y las tablas no las creo desde mi programa ya las doy hechas en un backup.sql.

AzidRain
24-08-2010, 20:31:32
Ah ya caigo... connor. Solo que de acuerdo con la licencia de MySQL no lo puedes distribuir junto con tu software. En teoría para no violar la licencia tu cliente tendría que tener ya instalada la BD para su uso y tu únicamente le está vendiendo un software que trabaja con su servidor pero NO distribuyes nada de MySQL.

Lo que que quieres hacer es simplemente restaurar tus tablas, por lo que puedes poner en la instalacion de tu programa un dialogo que pida los datos del servidor y un usuario válido para correr el proceso de restauración. Pero insisto, todo eso partiendo de que MySQL se instala en forma independiente.

RebeccaGL
25-08-2010, 17:37:11
// Bakcup_DATABASE
WinExec('cmd /c "C:\Pascal\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -h localhost --user=demo_user --password=delphi --databases becc > C:\demo_backup.sql', SW_Hide);

// Restore_DATABASE
WinExec('cmd /c "C:\Pascal\MySQL\MySQL Server 5.1\bin\mysql.exe" -h localhost --user=demo_user --password=delphi --databases demo_db < C:\demo_backup.sql', SW_Hide);


La primera su funciona la segunda no funciona quiero restaurar un respaldo y no graba nada de nada, en que estoy mal, alguna ayuda...

Otra cosa si MySQL es una Dase de Datos poderosa, porque tengo que ejecutar programas en linea de comandos como estos, deberia haber un modulo o una unidad donde existan procedures o funciones para realizar Backups y Restores de bases de datos para MySQL. Se que desde el administrador se puede hacer pero esa no es la idea.

AzidRain
25-08-2010, 20:31:55
No entiendo que pasa así como lo pusiste debería de funcionar. Por que no le quitas el SW_HIDE para que que puedas ver si te manda algún mensaje de error. Pero reitero, es la forma correcta de hacer lo que necesitas.

RebeccaGL
26-08-2010, 17:01:01
Mira no funciona, esto me tiene harto hace una semana tratando de resolver esto, he buscado en google y ningun ejemplo funciona para restaurar una base de datos de mysql, asi es que me harte la empaquete con winzip y luego la desempaquetare en la carpeta DATA eso es todo mas rapido en vez de tanta perdida de tiempo, y funciona.