|
respaldo base de datos mysql - delphi
hola amigos quiero respaldar y restaurar una base de datos mysql con delphi, tengo el siguiente codigo pero este se cae cuando llego al momento de hacer el respaldo alguien me puede ayudar
gracias.
codigo:
procedure TfrmPRORespaldo.btnrespaldoClick(Sender: TObject);
var
i : integer;
v_tipomensaje : string;
v_ruta : string;
v_listas : TStringList;
v_archivobat : PChar;
begin
if (not rbbackup.Checked) and (not rbrestore.Checked) or
(edtnombrearchivo.text = '') then exit;
if rbbackup.Checked then v_tipomensaje := rbbackup.Caption;
if rbrestore.Checked then v_tipomensaje := rbrestore.Caption;
v_listas := TStringList.Create;
if rbbackup.Checked then
begin
v_ruta := 'C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\mysqldump --opt --password=usrges --user=usrges bdgestran > ' + edtnombrearchivo.text;
v_listas.Add(v_ruta);
v_listas.SaveToFile(cRutaExe+'backup.bat');
end;
if rbrestore.Checked then
begin
v_ruta := 'C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\mysql --password=usrges --user=usrges bdgestran < ' + edtnombrearchivo.text;
v_listas.Add(v_ruta);
v_listas.SaveToFile(cRutaExe+'restore.bat');
end;
v_listas.Free;
if MensajeDlg('Inicia Proceso ',v_tipomensaje) = 1 then
begin
ProgressBar1.Position := 0;
ProgressBar1.Visible := true;
for i := 1 to 10000 do
ProgressBar1.Position := i;
try
v_archivobat := StrAlloc(80);
StrPCopy(v_archivobat, v_ruta);
//WinExec(v_archivobat , SW_SHOWNORMAL);
ShellExecute(Handle,'open',v_archivobat,nil, nil,SW_SHOWNORMAL);
StrDispose(v_archivobat);
except on E:Exception do
MsgDialogo('Error en en el proceso de '+v_tipomensaje, mtError, [mbOk]);
end;
MensajeAdv('Terminado Proceso ',v_tipomensaje);
end;
ProgressBar1.Position := 0;
ProgressBar1.Visible := false;
end;
|