Firebird への接続(FireDAC)

提供: RAD Studio
移動先: 案内検索

データベース接続(FireDAC) への移動

このトピックでは、Firebird データベースへの接続方法を説明します。

サポート対象バージョン

FireDAC ネイティブ ドライバでは、Firebird サーバーおよび組み込みエディション版の、バージョン 1.5 以降をサポートしています。Jaffil は正式にはサポートしていません。

InterBase に接続する場合には、FireDAC InterBase ドライバを使用してください。

As of RAD Studio 11.1 より、FireDAC は、さらなるデータ型のサポートを提供するなど、Firebird 4 ドライバを改良しています。

  • INT128
  • NUMERIC(精度 19..38)
  • TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE(制限あり)
  • DECFLOAT(16/34)
  • ネイティブ ステートメント タイムアウト

クライアント ソフトウェア

Windows 版クライアント ソフトウェア

FireDAC を使用するには、以下の x86 または x64 クライアント ソフトウェアがワークステーションにインストールされている必要があります。

  • FBCLIENT.DLL - Firebird サーバーへ接続するためのライブラリ。これは、サーバー(ダウンロード)のインストール Bin フォルダから取得できます。
  • FBEMBED.DLL - Firebird 組み込みサーバー(詳細)を使用してデータベースを操作するためのライブラリ。
メモ: DBMS クライアント ライブラリに適切な DLL を使用することは重要です。 GDS32.DLL を Firebird と一緒に、または、FBCLIENT.DLL を InterBase と一緒には使用しないでください。

これらの必要なファイルは以下の場所に配置できます。

  • PATH 環境変数値に含まれているフォルダ(たとえば <Windows>\SYSTEM32 など)
  • アプリケーションの EXE ファイルのフォルダ

あるいは、FDDrivers.ini にパスを指定することにより、その他のフォルダに必要なファイルを配置することもできます。

[FB]
VendorLib=<folder>\fbclient.dll

Firebird クライアント ライブラリが正しくインストールされていない場合は、接続を試みたときに以下の例外が発生します。

[FireDAC][Phys][FB]-314. ベンダ ライブラリ [fbclient.dll] を読み込めません。指定されたモジュールは見つけられませんでした。 [fbclient.dll] をチェックします。これは、PATH ディレクトリの 1 つ、または、アプリケーション EXE ディレクトリにあります。

macOS クライアント ソフトウェア

FireDAC を使用するには、以下が必要です。

Firebird サーバーに接続するための libfbclient.dylib x86 クライアント ライブラリ。 これは、サーバー(ダウンロード)インストレーションの /Library/Frameworks/Firebird.framework/Versions/A/Resources/lib/ から取得できます。

不可欠なライブラリは 2 つあります:

  • /Library/Frameworks/Firebird.framework/Versions/A/Resources/lib/libfbclient.dylib
  • /Library/Frameworks/Firebird.framework/Versions/A/Resources/lib/libtommath.dylib

Linux 版クライアント ソフトウェア

FireDAC には、Firebird クライアント ライブラリが必要です。インストールするには:

  1. Ubuntu Server 16.04 LTS では、次を実行します:
    sudo apt-get install libfbclient2
    sudo ln -s /usr/lib/x86_64-linux-gnu/libfbclient.so.2 /usr/lib/x86_64-linux-gnu/libfbclient.so
    
  2. Red Hat Enterprise Linux 7 では、次を実行します:
    sudo yum install firebird-libfbclient
    sudo ln -s /usr/lib64/libfbclient.so.2 /usr/lib64/libfbclient.so
    

ドライバのリンク

ドライバをリンクするには、以下のいずれかを行います。

接続定義パラメータ

ほとんどのアプリケーションの場合、Firebird DBMS に接続するには、DriverIDProtocolServerDatabaseUser_NamePasswordCharacterSet の各接続定義パラメータを指定する必要があります(詳細は、「接続の定義(FireDAC)」を参照)。

DriverID=FB

パラメータ 説明 値の例
Database

アタッチするデータベースの名前。値は以下のいずれかです。

  • データベース ファイル パス
  • データベースの完全パス(サーバー アドレスを含む)

組み込みデータベースの場合、パスにはパス変数を含めることができます。

  • C:\ib\ADDEMO_IB2007.IB
  • 127.0.0.1:C:\ib\ADDEMO_IB2007.IB
  • \\MySrv\C:\ib\ADDEMO_IB2007.IB
OSAuthent

認証モードを以下のように制御します。

  • Yes ― Windows の認証を使用します。
  • No ― DBMS の認証を使用します。これがデフォルト値です。

詳細については、doc\README.trusted_authentication.txt を参照してください。

Yes
User_Name ユーザー名です。 sysdba
Password ユーザー パスワードです。 masterkey
CharacterSet 使用する文字セットを指定します。
CharacterSet パラメータを以下のいずれかの値に明示的に設定することを強くお勧めします。
  • UTF8(アプリケーションで Unicode をサポートする必要がある場合)。詳細は、「Unicode のサポート(FireDAC)」を参照。
  • WIN1250(中央ヨーロッパ語の場合)
  • WIN1251(キリル語の場合)
  • WIN1252(西ヨーロッパ語、米語の場合)
  • その他
WIN1252
ExtendedMetadata

クエリ結果セットの拡張記述を以下のように制御します。

  • True ― FireDAC では、他の列属性に加えて列ドメイン名を取得します。列が %BOOL% といった名前のドメインに属する場合は、dtBoolean と記述されます。また、単一のシーケンスを読み取りその値を単一の列に割り当てる INSERT トリガがテーブルにある場合、その列は auto-incrementing one と記述されます。このオプションを True に設定すると、データセットが開くのが少し遅くなります。
  • False ― FireDAC では、クエリ列に関する限られた情報のみ使用します。これがデフォルト値です。
False
Port

Interbase サーバーがリスンしている TCP/IP ポート。デフォルトでは、3050 になります。これとは異なる場合、"Port" パラメータを必要な値に設定しなければなりません。

3051
Protocol

DB サーバーへの接続に使用するプロトコルです。このパラメータは、以下のいずれかの値を指定できます。

  • Local ― ローカルに動作しているサーバーに接続する場合、組み込みサーバーに接続する場合、エイリアスを使ってサーバーに接続する場合
  • NetBEUI ― Microsoft NetBIOS プロトコルを使って接続する場合
  • SPX ― Novel SPX プロトコルを使って接続する場合
  • TCPIP ― TCP/IP プロトコルを使って接続する場合

Protocol パラメータが指定されている場合、FireDAC では、そのプロトコルに適した形式と Server および Database パラメータ値を使ってデータベースの完全パスを作成します。

TCPIP
Server 接続先のサーバー アドレスです。Server パラメータ値は Protocol パラメータが指定された場合にのみ使用されます。TCP/IP ポート番号を指定する場合は、<ホスト>/<ポート> 表記を使用します。
  • 127.0.0.1
  • my_host/3055
SQLDialect 接続に使用する SQL ダイアレクトです。デフォルト値は 3 です。 1
RoleName デフォルトのロール名です。 Admin
OpenMode

データベースの開き方を指定します。サポートされているモードは次のとおりです。

  • OpenDatabase パラメータで指定された既存のデータベース ファイルを開きます。指定されたデータベースが存在しない場合、アプリケーションでは例外を送出します。これがデフォルト値です。
  • Create ― データベースを新しく作成します。指定されたデータベースが存在する場合、アプリケーションでは例外を送出します。
  • OpenOrCreate ― 既存のデータベースを開きます。指定されたデータベースが存在しない場合はデータベースを新しく作成します。
Open
DropDatabase

既存データベースの削除を以下のように制御します。

  • Yes ― サーバーから接続解除した直後に、Database パラメータで指定されたデータベース ファイルを削除します。
  • No ― 削除しません。これがデフォルト値です。
Yes
PageSize CreateDatabase = Yes の場合に新規作成データベースに使用されるページ サイズです。デフォルト値は 1024 です。 4096
IBAdvanced 追加パラメータを ';' で区切って並べたリストです。FireDAC.Phys.IBWrapper ユニットでサポートされているパラメータの全リストがわかります(DPBInfos 定数配列を参照)。そこに列挙されている各コードについては、InterBase/Firebird マニュアルを参照してください。
GUIDEndian GUID 値がクライアント上でどのように表されるかを定義します。 Little

ローカル接続

ローカル接続文字列は、サーバー マシンで使用されるファイル システムのネイティブ形式のパスとファイル名の仕様で構成されます。 ローカル接続文字列は、database.configuration で定義されているデータベース エイリアスにすることもできます。エイリアス形式は、構成ファイルでの定義方法によって異なります。 例:

  • zappa
  • blackjack.fdb
  • poker

ローカル接続文字列を受信すると、FireBird クライアントはデータベース ファイルに埋め込まれた接続を指示しようとします。

使用例

  • リモート サーバー上で動作しているデータベースに TCP/IP プロトコルで接続する場合:


DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
Protocol=TCPIP
Server=FBSrv
User_Name=sysdba
Password=masterkey
CharacterSet=win1252
ExtendedMetadata=True
  • リモート サーバー上で動作しているデータベースに TCP/IP プロトコルで接続する場合:


DriverID=FB
Database=FBSrv:C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
Password=masterkey
CharacterSet=utf8
  • リモート サーバー上で動作しているデータベースに TCP / IPプロトコルで接続し、圧縮をアクティブにする場合:


DriverID=FB
Database=FBSrv:C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
Password=masterkey
IBAdvanced=Config=WireCompression=true
  • ローカル データベースに接続する場合:


DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
Password=masterkey
CharacterSet=win1251
  • Firebird 組み込みデータベースに接続する場合:

TFDPhysFBDriverLink コンポーネントをフォームにドロップし、その VendorLib プロパティを <お使いのパス>\fbembed.dll に設定するか、仮想ドライバ定義を使用します。


DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
CharacterSet=utf8

関連項目

サンプル