[Lazarus-es] firebird: respaldar desde el programa

Hector S. Ponce hectorsponce en gmail.com
Jue Nov 11 01:07:19 CET 2010


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;


El 10/11/2010 12:50 p.m., Paola Bruccoleri escribió:
> El 09/11/2010 10:26 a.m., Paola Bruccoleri escribió:
>> Hola a todos..
>>
>> Tengo implementado esto:
>>
>>       sNombre:= 'Datos_'+FormatDateTime('ddmmyyyy', Date)+ '.fbk';
>>       sLog:= 'Log_'+ FormatDateTime('ddmmyyyy', Date)+ '.log';
>>       sBack:= ExtractFilePath(Application.ExeName)+'gbak.exe';
>>       sPara:= '-v -t -user SYSDBA -password masterkey -y 
>> '+Principal.cPathDB+sLog+ ' '+ Principal.cPathDB + Principal.cFileDB 
>> + ' '+ sDestino + sNombre;
> ok.. esto funcionaba bien mientras el nombre que le ponía al path era 
> de esta forma: d:\carpeta\; ahora.. si hacía esto: 
> 192.168.1.2:d:\carpeta no funcionaba correctamente el gbak por la ruta 
> del archivo.
> Ahora ya separé el hostname de la cadena del path a la base de datos y 
> listo!
> muchas gracias igual..
> chauuuuuuuuuu
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es





More information about the Lazarus-es mailing list