![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Pues igual a como lo tienes ahora. Es decir, en el bat, en la línea del mysqladmin pones el cambio que te menciono.
Ahora bien, en realidad yo creo que puedes olvidarte del BAT. Calcula la fecha desde tu aplicación y manda llamr directamente a mysqladmin con ShellExecute. Por cierto, no entiendo qué es lo que hace tu BAT con la fecha. // Saludos |
#2
|
|||
|
|||
Le hice la modificación que me recomendó y sigue el mismo problema.
Ahora si me olvido del .bat y mando a ejecutar directamente el mysqldump, como le digo que BD, usuario y contraseña debe coger desde el c++?. Lo que hace el bat con la fecha es generarme por días las salvas, ejemplo día de hoy: Backup_13042012.sql |
#3
|
||||
|
||||
Te pongo un ejemplo en delphi. No debe ser mayor problema traducirlo a C++.
Usas esta función pasando el usuario, contraseña, base de datos a respaldar y directorio donde colocar el respaldo. El archivo generado tendrá por nombre la base de datos seguida de la fecha, por ejemplo: test_130412.sql. Desde luego, tienes que ajustar la ruta a mysqldump.exe tal como lo tengas en tu sistema. // Saludos |
#4
|
|||
|
|||
Bueno no se nada de delphi pero +- por lo que entendi lo hice asi y me sale algunos errores que le mostrare.
Código:
void Backup(String User,String Password,String Database,String OutputDir) { String OutputFile; AnsiString as = FormatDateTime( "yyyymmmdd hh:mm:ss ",Now()); OutputFile = IncludeTrailingPathDelimiter(OutputDir) + Database + '_' + as + '.sql'; ShellExecute(NULL,"open","D:\Damian\web server\mysql\bin\mysqldump.exe",PChar(Format('-u%s -p%s %s -r %s', [User, Password, Database, OutputFile])),NULL, SW_HIDE); } Código:
Backup("damian","damian","test","D:\backups"); Código:
[BCC32 Error] Unit1.cpp(187): E2129 Character constant too long (or empty) [BCC32 Error] Unit1.cpp(187): E2188 Expression syntax [BCC32 Error] Unit1.cpp(187): E2293 ) expected [BCC32 Error] Unit1.cpp(187): E2121 Function call missing ) |
#5
|
||||
|
||||
Hola dmartinezn.
No utilizo mysql por lo que no puedo probar si los parámetros son correctos. Según entiendo de tu primer mensaje, estos no son enviados por la aplicación sino que se determinan dentro del archivo backup.bat. Yo llamaría a Backup.bat con ShellExecute de este modo: Código:
{ char cmd[1024]; GetEnvironmentVariable("COMSPEC", cmd, sizeof(cmd)); ShellExecute(Handle, "open", cmd, " /K D:\\Damian\\web server\\mysql\\bin\\Backup.bat", NULL, SW_HIDE); } Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-04-2012 a las 00:22:58. |
#6
|
||||
|
||||
Hola dmartinezn.
Como te dije antes no uso mysql, pero el código de roman, que sin dudas debe funcionar correctamente, creo que deberías traducirlo más o menos así: Código:
void Backup(char *User, char *Password, char *Database, char *OutputDir) { AnsiString OutputFile = IncludeTrailingPathDelimiter(OutputDir) + Database + '_' + FormatDateTime("ddmmyy", Now()) + ".sql"; TVarRec vr[] = {User,Password,Database,OutputFile}; ShellExecute(0, "open", "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe", Format("-u%s -p%s -r %s %s",vr,4).c_str(), NULL, SW_HIDE); } Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-04-2012 a las 04:19:25. Razón: corregir ortografía |
#7
|
||||
|
||||
¡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); } // Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Backup y Restore desde delphi 7 & mysql | MRS@N | MySQL | 3 | 06-05-2012 02:57:28 |
backup Mysql desde c++ builde 6 | dmartinezn | MySQL | 1 | 22-01-2012 13:41:58 |
Problema para ejecutar una aplicacion con mysql desde una pc cliente | karaoke | MySQL | 4 | 23-01-2008 18:25:58 |
Ejecutar un Backup | sierraja | Firebird e Interbase | 11 | 18-09-2006 17:33:07 |
Como ejecutar un archivo .chm desde C++ Builder 5? | mapch | C++ Builder | 1 | 13-08-2004 07:01:47 |
![]() |
|