Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-11

firebird: respaldar desde el programa

6 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

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;
       If FileExists(sDestino+sNombre) then
          MessageDlg('Aviso', 'Respaldo ya realizado', mtWarning, [mbOk], 0)
       else
         begin
           if ShellExecute (0,'open',PChar(sBack),PChar(sPara),nil,

SW_HIDE) <= 32 then
MessageDlg('Aviso', 'No se pudo realizar el respaldo', mtWarning, [mbOk], 0)
else
MessageDlg('Aviso', 'Respaldo realizado', mtWarning, [mbOk], 0);

           end;

que hasta hace pocos d�as me funcionaba ok... pero ahora, luego de unos cambios en la conexion a la bd, me dej� de andar. Sale el mensaje "respaldo realizado" pero oviamente el archivo no est�. Antes tenia la conexi�n con autocommit = false y ahora la tengo en true (uso ZEOS).
No veo que otro cambio haya tenido que ver....

O sino, de qu� otra forma? usando quiz�s alg�n componente? muchas gracias

Reply by email

Paola Bruccoleri
to Paola Bruccoleri

El 09/11/2010 10:26 a.m., Paola Bruccoleri escribi�:

Show quoted text 10 lines
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

Reply by email

Hector S. Ponce
to Paola Bruccoleri

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�:

Show quoted text 25 lines
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

Reply by email

Paola Bruccoleri
to Hector S. Ponce

El 10/11/2010 10:07 p.m., Hector S. Ponce escribi�:

Show quoted text 37 lines
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

Reply by email

christian Ortiz
to Paola Bruccoleri

Shellexecute Only HuindoUS, Tprocess funcionara en caulquier SO.

El 10 de noviembre de 2010 19:14, Paola Bruccoleri < pbruccoleri en adinet.com.uy> escribi�:

Show quoted text 55 lines
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 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101110/d577448f/attachment.html>

Reply by email

Hector S. Ponce
to christian Ortiz

siempre uso process y funciona bien, no solo en windows

El 10/11/2010 09:47 p.m., christian Ortiz escribi�:

Show quoted text 75 lines
Shellexecute Only HuindoUS, Tprocess funcionara en caulquier SO. El 10 de noviembre de 2010 19:14, Paola Bruccoleri <pbruccoleri en adinet.com.uy <mailto:pbruccoleri en adinet.com.uy>> escribi�: 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 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org <mailto:Lazarus-es en lists.lazarus.freepascal.org> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Christian _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101110/9d741adb/attachment.html>

Reply by email