☆FirebirdのBackup&Restore
(本当は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で試しました。
エラー処理は行っていません。
重要
本稼動しているデータベースに試すことは避けて下さい。
あくまで、サンプルなので、何が起こるかわかりません。
| 固定リンク