Ver Mensaje Individual
  #5  
Antiguo 20-09-2012
jcrios_9 jcrios_9 is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 13
Reputación: 0
jcrios_9 Va por buen camino
Hola, explicaré un poco mis dudas aver si alguien puede darme alguna pista.

El programa comienza dandole valores a los parametros para hacer la llamada a mysqldump. En principio para restaurar sería exatamente lo mismo.

Código Delphi [-]
   
char *user="root";
char *password="root";
AnsiString nombrefichero=Edit1->Text; //el nombre que introduzca el usuario     
char *database="basedatos";     
AnsiString outputdir="C:\\";     
time_t t = time(NULL);     
struct tm *tmp = localtime(&t);     
char fecha[9];     
strftime(fecha, sizeof(fecha), "%d%m%Y", tmp);      
char outputfile[MAX_PATH];     

char args[MAX_PATH];      /* Calculamos el nombre del archivo de salida */     

sprintf(outputfile, "%s\\%s_%s.sql",outputdir, nombrefichero, fecha);

Lo que si cambiaría serian el calculo de parametros y la llamada a ShellExecute. En este caso utilizo mysqldump.exe porque es para respaldar la base de datos.
Pues bien, para restaurar la base datos, en vez de mysqldump se usa mysql simplemente.
Lo que no entiendo de los parametros para respaldar la base de datos es el -r que resalto. Así si hace bien el respaldo.
Sin embargo, no sé que poner para poder hacer la restauracion de la base de datos. He probado muchas formas y el resultado es que es como si no hiciera nada.

Código Delphi [-]
       
 /* Calculamos los parámetros */    
 sprintf(args, "-u%s -p%s %s -r %s", user, password, database, outputfile);    

 /* Hacemos el respaldo */     
     ShellExecute(         0,        
     "open", 
     "C:\\Program Files (x86)\\MySQL\\MySQL Server 5.5\\bin\\mysqldump.exe",       
      args,         
       "",        
      SW_HIDE);           
        }

La sintaxis en mysql para hacer el respaldo es esta:
Código SQL [-]
mysqldump -u root -p nombre_base_de_datos > fichero.sql

Y para restaurar la base de datos es esta:
Código SQL [-]
mysql -u root -p  nombre_base_de_datos < fichero.sql

Si le ejecuto por ventana de comandos, si sale bien, el caso es incluirlas en Builder c++ con ShellExecute. Pero la que me falta por incluir es la de restaurar.

Espero que me entendais un poco mejor. Gracias y un saludo a todos.

Última edición por jcrios_9 fecha: 20-09-2012 a las 12:17:47.
Responder Con Cita