☆FirebirdのBackup&Restore

TIBBackupServiceとTIBRestoreServiceを使ってFirebirdのデータベースファイルの バックアップとリストアを試してみました。
(本当は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で試しました。
エラー処理は行っていません。

重要
本稼動しているデータベースに試すことは避けて下さい。
あくまで、サンプルなので、何が起こるかわかりません。

|

その他のカテゴリー

ADO | ADT | API | ArrayList | ASP.NET | BDE | BDP.NET | BdpConnection | Borland Developer Studio 2006 | CAPICOM | class | ClipBoard | CodeEditor | Convert.ToString | Custom component | DBExpress | Delphi 2005 | Delphi 2006 | Delphi 2007 | Delphi XE2 | Delphi7 | Delphi8 | Device Driver | Dialog | Docking | DocuWorks | Docuworks SDK | Drag&Drop | Evernote | EXCEL | Firebird | FireMonkey | Game | General | Generics | Google Earth COM API | Google Maps | Google SketchUp | Graphic | IDE | Imm | Indy | InstallAware Express6 | InterBase Admin | JWW | Microsoft SQL Server | MyBase | OnMouseDown | Oracle XE | Paradox | PreviewHandler | PrintDialog | PrintPreviewDialog | PropertyGrid | PSDファイル | Ribbon Controls | RichTextBox | Servers | SubClass | TAction | TActionList | TAnimate | TButton | TCategoryButtons | TClientDataSet | TComboBox | TComboBoxEx | TCustomEdit | TDBGrid | TDockTabSet | TDrawGrid | TEdit | TExcelApplication | TFont | TForm | third party | TImage | TLabel | TList | TListBox | TListView | TMemo | TOpenDialog | TOutlookApplication | TPageControl | TPanel | TRichEdit | TShellResources | TStringGrid | TTabControl | TToolBar | TToolButton | TTreeView | TWebBrowser | Update | VCL Styles | WinInet | XE2 | XPman | オープン配列パラメータ | グループ化 | トランスレーションマネージャー | ファイル処理 | ファイル名処理 | 動的配列 | 投票 | 文字列処理 | 日本語入力 | 暗号 | | 音声合成利用