Ver Mensaje Individual
  #13  
Antiguo 14-04-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡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
Responder Con Cita