☆FirebirdのBackup&Restore
TIBBackupServiceとTIBRestoreServiceを使ってFirebirdのデータベースファイルの
バックアップとリストアを試してみました。
(本当はInterBaseなんだけど、Firebirdでも使えるというのが正しい表現かも知れませんね。)
フォームにコンポーネントを配置する方法だと、なぜか時々エラーが表示されるので、インスタンスを作成しています。
まずは定義及び設定部分です。
バックアップ処理です。
リストア処理です。
DelphiはBDS2006PRO、Firebirdは、Firebird-1.5.4.4910-0で試しました。
エラー処理は行っていません。
重要
本稼動しているデータベースに試すことは避けて下さい。
あくまで、サンプルなので、何が起こるかわかりません。
(本当はInterBaseなんだけど、Firebirdでも使えるというのが正しい表現かも知れませんね。)
フォームにコンポーネントを配置する方法だと、なぜか時々エラーが表示されるので、インスタンスを作成しています。
まずは定義及び設定部分です。
uses IBServices; var DatabaseName, BackupFile: String; UserName, PW: String; procedure TForm1.FormCreate(Sender: TObject); var Path: String; begin // c:\test\test.gdbをC:\test\bakにバックアップする場合 Path := 'C:\Test\'; DatabaseName := Path + 'test.gdb'; BackupFile := Path + 'bak\test.bak'; UserName := 'USERNAME'; PW := '********' end;
バックアップ処理です。
// バックアップ Backup
procedure TForm1.Button1Click(Sender: TObject);
var
IBBackupService1: TIBBackupService;
begin
IBBackupService1:= TIBBackupService.Create(nil);
try
IBBackupService1.LoginPrompt := False;
IBBackupService1.Protocol := TCP;
IBBackupService1.ServerName := 'localhost';
IBBackupService1.Params.Add('user_name=' + UserName);
IBBackupService1.Params.Add('password=' + PW);
IBBackupService1.DatabaseName := DatabaseName;
IBBackupService1.BackupFile.Add(BackupFile);
IBBackupService1.Active := True;
try
IBBackupService1.ServiceStart;
finally
IBBackupService1.Active := False;
end;
finally
IBBackupService1.Free;
end;
end;
リストア処理です。
// リストア Restore
procedure TForm1.Button2Click(Sender: TObject);
var
IBRestoreService1: TIBRestoreService;
begin
IBRestoreService1:= TIBRestoreService.Create(nil);
try
IBRestoreService1.LoginPrompt := False;
IBRestoreService1.Protocol := TCP;
IBRestoreService1.ServerName := 'Localhost';
IBRestoreService1.Params.Add('user_name=' + UserName);
IBRestoreService1.Params.Add('password=' + PW);
IBRestoreService1.DatabaseName.Add(DatabaseName);
IBRestoreService1.BackupFile.Add(BackupFile);
IBRestoreService1.Options := IBRestoreService1.Options + [Replace];
IBRestoreService1.Active := True;
try
IBRestoreService1.ServiceStart;
finally
IBRestoreService1.Active := False;
end;
finally
IBRestoreService1.Free;
end;
end;
DelphiはBDS2006PRO、Firebirdは、Firebird-1.5.4.4910-0で試しました。
エラー処理は行っていません。
重要
本稼動しているデータベースに試すことは避けて下さい。
あくまで、サンプルなので、何が起こるかわかりません。
| 固定リンク
