ODBC データ ソースへの接続(FireDAC)
データベース接続(FireDAC) への移動
このトピックでは、ODBC データ ソースへの接続方法を説明します。
サポート対象バージョン
FireDAC ODBC ブリッジ ドライバでは、ODBC レベル 2、3 のドライバをサポートしています。
Windows 版クライアント ソフトウェア
FireDAC を使用するには、ODBC 仕様に従って x86 または x64 ODBC ドライバをインストールしておく必要があります。以下の ODBC ドキュメントを参照してください。
メモ: 一部の ODBC ドライバ(Oracle ODBC ドライバ v 11 など)には、データ取得時のアクセス違反の原因となるバグがあります。このバグを回避するには、FetchOptions.RowsetSize を
1
に設定してください。
macOS クライアント ソフトウェア
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 接続パラメータの "名前=値" のペアを指定することができます。パラメータ間は ';' で区切って指定しなければなりません。 | |
ODBCVersion | ODBC ドライバ マネージャ バージョンを指定します。利用可能な値: 3.8 または 3.0(デフォルト値)。 | 3.8 |
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