InterBase への接続(FireDAC)

提供: Appmethod Topics
移動先: 案内検索

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

このトピックでは、Embarcadero InterBase への接続方法を説明します。

前提条件

サポート対象バージョン

FireDAC ネイティブ ドライバでは、Embarcadero InterBase の Server、Desktop、Developer、ToGo の各エディションおよび IBLite のバージョン 6 以降をサポートしています。

Firebird または Jaffil サーバーに接続するには、FireDAC Firebird ドライバを使用します。

クライアント ソフトウェアの取得

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

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

  • InterBase Server
    • Win32 の場合) GDS32.DLL: x86 アプリケーションから InterBase Server、Desktop、Developer の各エディションに接続するためのライブラリ
    • Win64 の場合) IBCLIENT64.DLL: x64 アプリケーションから InterBase Server、Desktop、Developer の各エディションに接続するためのライブラリ
  • InterBase ToGo
    • Win32 の場合) IBTOGO.DLL: 組み込み型の InterBase ToGo を使ったデータベースを x86 アプリケーションから操作するためのライブラリ
    • Win64 の場合) IBTOGO64.DLL: 組み込み型の InterBase ToGo を使ったデータベースを x64 アプリケーションから操作するためのライブラリ

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

  • PATH 環境変数値に含まれているフォルダ(たとえば <Windows>\SYSTEM32 など)
  • アプリケーションの EXE ファイルのフォルダ
  • その他の任意のフォルダ(FDDrivers.ini で指定):
[IB]
VendorLib=<folder>\gds32.dll

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


[FireDAC][Phys][IB]-314. Cannot load vendor library [gds32.dll]. The specified module could not be found.
Check [gds32.dll], which is located in one of the PATH directories or in the application EXE directory.

Mac OS X 版クライアント ソフトウェアの取得

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

  • InterBase サーバーに接続するための x86 クライアント ライブラリ libgds.dylib。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase Client\OSX32]を選択します。
  • x86 版の組み込み型 InterBase libibtogo.dylib。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase ToGo\OSX32]を選択します。

iOS 版クライアント ソフトウェアの取得

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

  • iOS シミュレータの場合 - x86 版の組み込み型 InterBase libibtogo.dylib。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase ToGo\iOSSimulator]を選択します。
  • 32 ビット iOS デバイスの場合 - 組み込み型 InterBase libibtogo.a(ARM 静的ライブラリ)。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase ToGo\iOSDevice32]を選択します。
  • 64 ビット iOS デバイスの場合 - 組み込み型 InterBase libibtogo.a(ARM 静的ライブラリ)。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase ToGo\iOSDevice64]を選択します。

リンケージ モードを選択できないことに注意してください。

Android 版クライアント ソフトウェアの取得

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

  • 組み込み型 InterBase libibtogo.a(ARM 静的ライブラリ)。Appmethod では、[プロジェクト|配置|機能ファイルの追加|InterBase ToGo\Android]を選択します。

リンケージ モードを選択できないことに注意してください。

ドライバのリンク

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

接続定義パラメータ

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

DriverID=IB または DriverID=IBLite

パラメータ 説明 値の例
Database

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

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

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

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

メモ: DriverID=IB に対してのみ。

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

  • Yes -- Windows の認証を使用します。
  • No -- DBMS の認証を使用します。これがデフォルト値です。
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

メモ: DriverID=IB に対してのみ。

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

3051
Protocol

メモ: DriverID=IB に対してのみ。

DB サーバーへの接続に使用するプロトコルです。以下の値のいずれかです。

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

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

TCPIP
Server

メモ: DriverID=IB に対してのみ。

接続先のサーバー アドレスを指定します。Server パラメータ値は Protocol パラメータが指定された場合にのみ使用されます。

127.0.0.1
InstanceName

メモ: DriverID=IB に対してのみ。

InterBase のインスタンス名です。InterBase 2007 からサポートを開始しています。

srv2
SQLDialect

メモ: DriverID=IB に対してのみ。

接続に使用する SQL ダイアレクトです。デフォルト値は 3 です。

1
RoleName

メモ: DriverID=IB に対してのみ。

デフォルトのロール名です。

Admin
OpenMode

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

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

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

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

使用例

セキュアな接続の使用

TLS/SSL 暗号化を使用するには、ssl=true というキーと値のペアを、次のように Database パラメータの値として渡します。


DriverID=IB
Database=my.interbasehost.net/3065?ssl=true?serverPublicFile=C:\PublicCertFileOnClient\CertFile.pem??:C:/DB/TEST.IB
User_Name=sysdba
Password=masterkey
CharacterSet=UTF8
ExtendedMetadata=True

詳細については、InterBase の『操作ガイド』マニュアルの第 5 章(5 ページ以降)を参照してください。

その他の使用例

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


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


DriverID=IB
Database=IBSrv:C:\ib\ADDEMO_IBXE3.gdb
User_Name=sysdba
Password=masterkey
CharacterSet=utf8
  • ローカル データベースに接続する場合:


DriverID=IB
Database=C:\ib\ADDEMO_IBXE3.gdb
User_Name=sysdba
Password=masterkey
CharacterSet=win1251
  • InterBase ToGo データベースに接続する場合:

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


DriverID=IB
Database=C:\ib\ADDEMO_IBXE3.gdb
User_Name=sysdba
Password=masterkey
CharacterSet=utf8
  • iOS デバイスまたは iOS シミュレータ上で Documents("書類")フォルダ内のデータベース ファイルに接続する場合:


DriverID=IB
User_Name=sysdba
Password=masterkey
Database=$(DOC)/ADDEMO.GDB
SQLDialect=3
CharacterSet=UTF8
ExtendedMetadata=True
  • Android デバイス上で外部ストレージの暗号化データベース ファイルに接続する場合:


DriverID=IB
User_Name=sysdba
Password=masterkey
Database=$(DOC)/ADDEMO.GDB
SQLDialect=3
CharacterSet=UTF8
ExtendedMetadata=True
SEPassword=12345
  • IBLite データベースに接続する場合:


DriverID=IBLite
Database=C:\ib\ADDEMO_IBXE3.gdb
User_Name=sysdba
Password=masterkey
CharacterSet=utf8

関連項目