[Lazarus-es] firebird: respaldar desde el programa
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Jue Nov 11 01:14:55 CET 2010
El 10/11/2010 10:07 p.m., Hector S. Ponce escribió:
> Paola, experimente rapidito con tu codigo y funciona bien. Ahora yo no
> uso el path de la base sino el alias.
>
> procedure TDataModule1.BackupDB;
> var
> BKPFolder, sNombre, sLog, sBack, sPara: string;
> p: TProcess;
> begin
> BKPFolder := ExtractFileDir(Application.ExeName) + '\bkp\';
> if not DirectoryExists(BKPFolder) then
> MkDir(BKPFolder);
> sNombre := 'bkp_' + IBConnection1.DatabaseName + '_' +
> FormatDateTime('yyyyMMDD_HHmmss', Now) + '.fbk';
> sLog := 'Log_' + IBConnection1.DatabaseName + '_' +
> FormatDateTime('yyyyMMDD_HHmmss', Now) + '.log';
> sBack := ExtractFilePath(Application.ExeName) + 'gbak.exe';
> sPara := ' -v -t -user ' + IBConnection1.UserName + ' -password ' +
> IBConnection1.Password + ' -y ' + BKPFolder + sLog +
> ' ' + IBConnection1.DatabaseName + ' ' + BKPFolder + sNombre;
>
> if not FileExists(sBack) then
> MessageDlg('Aviso', 'Falta ejecutable de backup', mtWarning,
> [mbOK], 0)
> else
> begin
> p := Tprocess.Create(nil);
> p.Options := [poWaitOnExit, poNoConsole];
> p.CommandLine := sBack + sPara;
> p.Execute;
> p.Free;
> if FileExists(BKPFolder + sNombre) then
> MessageDlg('Aviso', 'Respaldo realizado', mtWarning, [mbOK], 0)
> else
> MessageDlg('Aviso', 'No se pudo realizar el respaldo',
> mtWarning, [mbOK], 0);
> end;
> end;
Hola Héctor..
veo que tu usas la clase tProcess.. es más eficiente que hacer un
ShellExecute?
Claro, usando shellexecute me limito solo a windows... calculo que con
el tprocess queda multiplataforma..
chauuuuuuuu
More information about the Lazarus-es
mailing list