• (ここの記述は不完全です。詳しい方がいらっしゃいましたら補完お願いします)

基本事項

  • Firebird1.5まではInterbase6.0と互換性があるため、Interbaseのコンポーネントを使用可能。Firebird2.0以降はFirebirdに対応したコンポーネントを使う必要がある。

FireDAC

  • XE3で追加。Enterprise版には標準添付。Professtional版には別途FireDAC Client/Server Add-On Packを購入することで追加可能。Firebird1.5以降をサポート。
  • XE4版(8.0.5)までは、過去バージョンのdelphiをサポートしていた為、インストーラを「/SHOWIDE」オプション付きで起動するとインストールするIDEを選択する事が出来たがXE5移行はインストーラが統合され指定バージョン専用となっている。
  • (詳細記述募集)

BDE

  • Enterprise(C/S)版以上が必要。SQL-LINKでINTERBASEを指定することでFirebird1.5まで接続可能。(ベンダー非推奨)
  • Dialect 3に未対応。
  • BDEは廃止予定

dbExpress

  • Delphi2010以降のEnterprise以上でFirebirdを正式サポート。それ以前のバージョンではInterbaseドライバを使用することで1.5までは接続可能(ベンダー非推奨)
  • (詳細記述募集)

IBObjects

  • Delphi5以降のProfessional以上(Enterprise不要)ですべてのFirebirdのバージョンに対応。
  • データアクセス用のコンポーネントだけでなく、独自のDBコントロールもある。
  • データアクセス用コンポには、Delphi付属のDBコントロール(TDBGridなど)と接続できるTIBO系と、独自コントロール(TIB_DBGridなど)接続用のTIB_系がある。同一プロジェクト内での混在は可能だが相互接続はできない。

FIBPlus

  • (詳細記述募集)

ODBC

  • (詳細記述募集)

IBX

  • (詳細記述募集)

Universal Data Access Components (UniDAC)

  • Firebird 1.x/2.xを含む、多くのデータベースに対応したDevart社のコンポーネント(有料)。
  • Delphi6/C++Builder6以降(Delphi8を除く)、Lazarus(Free Pascal)に対応。
  • Firebird 2のRETURNING節、EXECUTE BLOCK構文、Advanced Lockingに対応。
  • UniDAC Professional EditionはiOS, Androidアプリにも対応。
  • http://www.devart.com/unidac/

使用例

※注 以下のソースコードはUniDAC Professional Edition用であり、コンパイルおよび動作の確認はしていません。

type
  TForm1 = class(TForm)
    UniConnection1: TUniConnection;
    UniQuery1: TUniQuery;
    UniScript1: TUniScript;
    InterBaseUniProvider1: TInterBaseUniProvider;
  private
    function TableOpen: Boolean;
  end;

function TForm1.TableOpen: Boolean;
begin
  Result := False;

  with UniConnection1 do begin
    ProviderName := 'InterBase';
    Username     := 'SYSDBA';
    Password     := 'masterkey';
    Server       := '127.0.0.1';        // fbembed.dllの使用時は''(空)にすること
    Database     := 'C:\data\test.fdb';
  end;

  with UniConnection1.SpecificOptions do begin
    Clear;
    Add('UseUnicode=True'); // 文字列をTrue=dtWideString/False=dtStringとして扱う
    Add('Charset=UTF8'   ); // CP943C, UNICODE_FSS
    Add('CharLength=0'   );
    Add('Protocol=TCP'   );
    Add('SQLDialect=3'   );
    Add('Role='          );
    Add('ClientLibrary=' ); // 省略時はgds32.dll,fbclient.dllを探す (fbembed.dllも使用可能)
    Add('TrustedAuthentication=False');
  end;

  try
    UniConnection1.Connected := True;
  except
    DatabaseClose;
    Exit;
  end;

  UniQuery1.Connection := UniConnection1;
  UniQuery1.SQL.Text   := 'SELECT * FROM MYTABLE;';
  try
    UniQuery1.Execute;
  except
    on E: Exception do begin
      ShowMessage(E.Message);
      Exit;
    end;
  end;

  Result := True;
end;