標準準拠のアプリケーションまたはドライバーは、Open Group CAE 仕様 "データ管理: SQL Call-Level インターフェイス (CLI)" と ISO/IEC 9075-3:1995 (E) Call-Level インターフェイス (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 ドライバーでサポートされていない可能性があります。 標準に準拠したアプリケーションでこれらの機能が使用されている場合は、操作するドライバーでサポートされていることを確認する必要があります。