Italian community of Lazarus and Free Pascal
Programmazione => Databases => Topic aperto 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;
-
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]);