標準に準拠したアプリとドライバー
標準に準拠したアプリケーションまたはドライバーは、Open Group CAE 仕様 "データ管理: SQL コール レベル インターフェイス (CLI)" と ISO/IEC 9075-3:1995 (E) コール レベル インターフェイス (SQL/CLI) に準拠しているアプリケーションです。
ODBC 3.x では、次の機能が保証されています。
Open Group および ISO CLI 仕様に記述されたアプリケーションは、ODBC 3.x ヘッダー ファイルを使用してコンパイルされ、ODBC 3.x ライブラリとリンクされている場合、および ODBC 3.x ドライバー マネージャーを使用してドライバーにアクセスできる場合に、ODBC 3.x ドライバーまたは標準準拠ドライバーで動作します。
Open Group および ISO CLI 仕様に書き込まれたドライバーは、ODBC 3.x ヘッダー ファイルを使用してコンパイルされ、ODBC 3.x ライブラリとリンクされている場合、およびアプリケーションが ODBC 3.x ドライバー マネージャーを使用してドライバーにアクセスできる場合に、ODBC 3.x アプリケーションまたは標準準拠アプリケーションで動作します。
標準準拠のアプリケーションとドライバーは、ODBC_STD コンパイル フラグを使用してコンパイルされます。
標準に準拠したアプリケーションでは、次の動作を示します。
標準に準拠したアプリケーションが SQLAllocEnv を呼び出す場合 (これは、SQLAllocEnv が Open Group および ISO CLI の有効な関数であるため発生する可能性があります)、その呼び出しはコンパイル時に SQLAllocHandleStd にマップされます。 その結果、アプリケーションは実行時に SQLAllocHandleStd を呼び出します。 この呼び出しの処理中に、ドライバー マネージャーは、SQL_ATTR_ODBC_VERSION 環境属性を SQL_OV_ODBC3 に設定します。 SQLAllocHandleStd の呼び出しは、SQL_HANDLE_ENV の HandleType を使用した SQLAllocHandle の呼び出しと、SQL_ATTR_ODBC_VERSION を SQL_OV_ODBC3 に設定する SQLSetEnvAttr の呼び出しと同じです。
標準準拠のアプリケーションが SQLBindParam を呼び出す場合 (これは、SQLBindParam が Open Group および ISO CLI の有効な関数であるため発生する可能性があります)、ODBC 3.x ドライバー マネージャーは、その呼び出しを SQLBindParameter の同等の呼び出しにマップします。 (付録 G: 下位互換性に関するドライバーのガイドラインの SQLBindParam マッピングを参照してください。)
ISO CLI に合わせて、ODBC 3.x ヘッダー ファイルには、SQLGetInfo の呼び出しで使用される情報型のエイリアスが含まれています。 標準準拠アプリケーションでは、ODBC 3.x 情報型の代わりにこれらのエイリアスを使用できます。 詳細については、次のトピック「ヘッダー ファイル」を参照してください。
標準に準拠したアプリケーションでは、サポートされているすべての機能が動作するドライバーでサポートされていることを確認する必要があります。 SQL_ATTR_CURSOR_SCROLLABLE ステートメント属性を SQL_SCROLLABLE に設定し、SQL_ATTR_CURSOR_SENSITIVITY ステートメント属性を SQL_INSENSITIVE または SQL_SENSITIVE に設定することは、標準ではオプション機能として使用できますが、ODBC 3.x Core レベルには含まれていないため、すべての ODBC 3.x ドライバーでサポートされていない可能性があります。 標準に準拠したアプリケーションでこれらの機能が使用されている場合は、操作するドライバーでサポートされていることを確認する必要があります。