ODBC データ ソースへの接続(FireDAC)
データベース接続(FireDAC) への移動
このトピックでは、ODBC データ ソースへの接続方法を説明します。
目次
サポート対象バージョン
FireDAC ODBC ブリッジ ドライバでは、ODBC レベル 2、3 のドライバをサポートしています。
Windows 版クライアント ソフトウェア
FireDAC を使用するには、ODBC 仕様に従って x86 または x64 ODBC ドライバをインストールしておく必要があります。以下の ODBC ドキュメントを参照してください。
メモ: 一部の ODBC ドライバ(Oracle ODBC ドライバ v 11 など)には、データ取得時のアクセス違反の原因となるバグがあります。このバグを回避するには、FetchOptions.RowsetSize を
1
に設定してください。
Mac OS X クライアント ソフトウェア
FireDAC を使用するには、必須の ODBC ドライバとして UnixODBC をインストールしておく必要があります。
ドライバのリンク
ドライバをリンクするには、以下のいずれかを行います。
- [ツール パレット]の[FireDAC Links]ページから、TFDPhysODBCDriverLink コンポーネントをドロップします。
- uses 句に FireDAC.Phys.ODBC ユニットを追加します。
接続定義パラメータ
ODBC データ ソースへの接続は、次の基本的な 2 つの方法で行うことができます。
- ODBC アドミニストレータのコントロール パネルを使って DSN を構成し、その DSN の名前を DataSource パラメータに指定します。
- FireDAC 接続エディタにて(詳細については「接続の定義(FireDAC)」参照)、ODBCDriver パラメータ値を指定し、[ウィザード]ボタンをクリックします。ウィザードの指示に従います。
メモ: DataSource パラメータと ODBCDriver パラメータは、どちらか一方しか指定することができません。ODBC ドライバごとに、独自の接続パラメータ セットが存在します。これらは ODBCAdvanced パラメータの値として指定することができます。
DriverID=ODBC
パラメータ | 説明 | 値の例 |
---|---|---|
ODBCDriver | 接続に使用する ODBC ドライバの名前。これを指定した場合、他の接続パラメータは ODBCAdvanced パラメータ内に指定しなければなりません。 | SQL SERVER |
ODBCAdvanced | ODBC 接続パラメータの "名前=値" のペアを指定することができます。パラメータ間は ';' で区切って指定しなければなりません。 | |
DataSource | 接続に使用する既存の DSN の名前。 | MySAPDB |
LoginTimeout | 接続の確立中にアプリケーションがタイムアウトするまでの時間(秒単位)を制御します(0 の場合は無限に待つことを指定します)。 | 30 |
NumericFormat | 内部的に数値をバインドするモードを制御します。 'Binary' が最も効率的なモードです。 ただし、一部の ODBC ドライバでは、バイナリ モードが正しくサポートされていません。 このケースでは、このパラメータが 'String' (デフォルト値)に設定されていることを確認します。 | String |
MetaDefCatalog | アプリケーションのデフォルト カタログを指定します。カタログ名が MetaDefCatalog と同じ場合、設計時コードではオブジェクト名からカタログ名が省略されます。 | Northwind |
MetaDefSchema | アプリケーションのデフォルト スキーマを指定します。スキーマ名が MetaDefSchema と同じ場合、設計時コードではオブジェクト名からスキーマ名が省略されます。 | dbo |
ODBC MSSQL データベースの場合は、ODBCAdvanced の FDConnection パラメータ値を MARS_Connection=YES
に設置します。そうしないと、FDTable の Open メソッドを呼び出したときに、次のエラーが発生します。
使用例
- PostgreSQL に接続する場合:
DriverID=ODBC User_Name=postgres Password=marlboro ODBCDriver=PostgreSQL ANSI ODBCAdvanced=SERVER=localhost;PORT=5432;DATABASE=addemo
- Sybase Adaptive Server Enterprise に接続する場合:
DriverID=ODBC ODBCDriver=Adaptive Server Enterprise ODBCAdvanced=server=da;port=5000;quotedidentifier=1 Database=addemo User_Name=sa MetaDefCatalog=addemo MetaDefSchema=dbo
- Informix Dynamic Server に接続する場合:
DriverID=ODBC ODBCDriver=IBM INFORMIX ODBC DRIVER User_Name=informix Password=informix2 Database=sysuser ODBCAdvanced=HOST=DA;SRVR=ol_svr_custom;SERV=svc_custom;PRO=olsoctcp;CLOC=en_US.CP1252;DLOC=en_US.819