ODBC データ ソースへの接続(FireDAC)

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

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

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

サポート対象バージョン

FireDAC ODBC ブリッジ ドライバでは、ODBC レベル 2、3 のドライバをサポートしています。

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

FireDAC を使用するには、ODBC 仕様に従って x86 または x64 ODBC ドライバをインストールしておく必要があります。以下の ODBC ドキュメントを参照してください。

メモ: 一部の ODBC ドライバ(Oracle ODBC ドライバ v 11 など)には、データ取得時のアクセス違反の原因となるバグがあります。このバグを回避するには、FetchOptions.RowsetSize1 に設定してください。

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 データベースの場合は、ODBCAdvancedFDConnection パラメータ値を MARS_Connection=YES に設置します。そうしないと、FDTableOpen メソッドを呼び出したときに、次のエラーが発生します。

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 10.0]Connection is busy with results for another command.

使用例

  • 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

関連項目