¡Ah! ¡Bien!
Je, je. Yo como no manejo C y lo único que tengo a la mano es Dev-C++ creé esta función. Menos eficiente que la de
ecfisa pero no me puedo quedar con las ganas de ponerla luego del rato que pasé haciendola
Código:
#include <time.h>
#include <shellapi.h>
void backup(char *user, char *password, char *database, char *outputdir)
{
/* Obtenemos la fecha actual */
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, database, fecha);
/* 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\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe",
args,
"",
SW_HIDE);
}
La otra opción de
ecfisa, mandando llamar a cmd.exe, seguro que también funciona parra ejecutar el BAT.
// Saludos