Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Maverich - Giugno 30, 2012, 04:56:32 pm

Titolo: [RISOLTO] Backup Firebird - unit FBAdmin
Inserito da: Maverich - Giugno 30, 2012, 04:56:32 pm
ho provato ad usare la unit FBAdmin al posto di Gbak
http://wiki.freepascal.org/Firebird_in_action#Client.2Fserver - vedere sezione Database Administration

IL backup viene eseguito, ma le dimensioni non corrispondono
es: dimensioni originali 4160 Kb - Backup 212 Kb

la unit si trova su
C:\codetyphon\fpcsrc\packages\fcl-db\src\sqldb\interbase

leggendo il file Log , vedo che le operazioni sono eseguite (come avverebbe usando GBak), ma non mi spiego le dimensioni.
facendo l'operazione di Restore, il db risulta illeggible.

Fpc 2.7.1 corrisponde alle note del link, uso Firebird 2.5 32bit

qualche idea ?

procedure Tfrm_ConnessioneFB.Backup;
{
//Protocol used to connect to service manager. One of:
//IBSPLOCAL: Host and port ignored
//IBSPTCPIP: Connectoct to Host:Port
//IBSPNETBEUI: Connect to \\Host\
//IBSPNAMEDPIPE: Connect to //Host/
}
var
  Admin: TFBAdmin;
begin
  AssignFile(F, 'C:\Temp\Log.ini');
  Rewrite(F);

  Admin := TFBAdmin.Create(Self);
  Admin.UseExceptions := True;
  Admin.Host := '192.168.1.1';
  Admin.Protocol := IBSPLOCAL;
  Admin.User := 'SYSDBA';
  Admin.Password := 'masterkey';
  Admin.OnOutput := @Visualizza;
  Admin.Connect;
  try
   Admin.Backup('D:\Lazarus\Progetti\Test\DataBase\GESTIONEAREE.FDB', 'C:\Temp\bckGESTIONEAREE.FDB', [IBBkpVerbose]);
   //Admin.Restore('C:\Temp\bckGESTIONEAREE.FDB', 'C:\Temp\GESTIONEAREE.FDB'', [IBResVerbose, IBResReplace]);
  finally
    Admin.Destroy;
    CloseFile(F);
  end;
end;

procedure Tfrm_ConnessioneFB.Visualizza(Sender: TObject; msg: string; IBAdminAction: string);
begin
  WriteLn(F, IBAdminAction+' : '+msg);
end;
Titolo: Re:[RISOLTO] Backup Firebird - unit FBAdmin
Inserito da: Maverich - Giugno 30, 2012, 06:05:05 pm
Il file generato da Backup e' compunque compresso, anche usando GBak con l'opzione -e (Expand)
Il file di restore viene decompresso, pero' i  paramtri
DataBase , File vanno invertiti

DataBase e' il file da Restore,
File e' il file di Backup

Admin.Backup('D:\Lazarus\Progetti\Test\DataBase\GESTIONEAREE.FDB', 'C:\Temp\BGESTIONEAREE.FDB', [IBBkpVerbose]);

Admin.Restore('C:\Temp\GESTIONEAREE.FDB', 'C:\Temp\BGESTIONEAREE.FDB', [IBResVerbose, IBResReplace]);