コア インターフェイスの適合性

すべての ODBC ドライバーは、少なくともコア レベルのインターフェイス適合性を示す必要があります。 コア レベルの機能は、ほとんどの汎用相互運用可能なアプリケーションで必要な機能であるため、ドライバーはこのようなアプリケーションを操作できます。 コア レベルの機能は、ISO CLI 仕様で定義されている機能と、Open Group CLI 仕様で定義されている非オプション機能にも対応します。 コア レベルのインターフェイスに準拠した ODBC ドライバーを使用すると、アプリケーションは次のすべてを実行できます。

  • SQLAllocHandleSQLFreeHandle を呼び出して、すべての種類のハンドルを割り当てて解放します。

  • SQLFreeStmt 関数のすべての形式を使用します。

  • SQLBindCol を呼び出 して、結果セットの列をバインドします。

  • SQLBindParameterSQLNumParams を呼び出して、パラメーターの配列を含む動的パラメーターを入力方向でのみ処理します。 (出力方向のパラメータは、 レベル 2 インターフェイスの適合性 の機能 203 です。)

  • バインド オフセットを指定します。

  • SQLParamDataSQLPutData の呼び出しを含む、実行時データ ダイアログを使用します。

  • SQLCloseCursorSQLGetCursorName、および SQLSetCursorName を呼び出して、カーソルとカーソル名を管理します。

  • SQLColAttributeSQLDescribeColSQLNumResultCols、および SQLRowCount を呼び出すことで、結果セットの説明 (メタデータ) にアクセスできます。 (列番号 0 でこれらの関数を使用してブックマーク メタデータを取得することは、 レベル 2 インターフェイスの適合性 の機能 204 です。)

  • カタログ関数 SQLColumnsSQLGetTypeInfoSQLStatistics、および SQLTables を呼び出して、データ辞書にクエリを実行します。

    ドライバーは、データベース テーブルとビューのマルチパート名をサポートする必要はありません。 (詳細については、レベル 1 インターフェイス準拠 の機能 101 と、レベル 2 インターフェイス準拠 の機能 201 を参照してください。) ただし、列評価やインデックスの名前など、SQL-92 仕様の特定の機能は、構文的にはマルチパートの名前付けに相当します。 ODBC 機能の現在の一覧は、SQL-92 のこれらの側面に新しいオプションを導入するためのものではありません。

  • SQLConnectSQLDataSourcesSQLDisconnect、および SQLDriverConnect を呼び出して、データ ソースと接続を管理します。 SQLDrivers を呼び出して、サポートされている ODBC レベルに関係なく、ドライバーに関する情報を取得します。

  • SQLExecDirectSQLExecute、および SQLPrepare を呼び出して、SQL ステートメントを準備して実行します。

  • SQLFetch を呼び出すか、FetchOrientation 引数を SQL_FETCH_NEXT に設定して SQLFetchScroll を呼び出すことによって、結果セットの 1 行または複数行を順方向にのみフェッチします。

  • SQLGetData を呼び出 して、パーツ内のバインドされていない列を取得します。

  • SQLGetConnectAttrSQLGetEnvAttrSQLGetStmtAttr を呼び出して、すべての属性の現在のすべての属性を取得し、SQLSetConnectAttrSQLSetEnvAttr、および SQLSetStmtAttr を呼び出して、すべての属性を既定値に設定し、特定の属性を既定以外の値に設定します。

  • SQLCopyDescSQLGetDescFieldSQLGetDescRecSQLSetDescField、および SQLSetDescRec を呼び出して、記述子の特定のフィールドを操作します。

  • SQLGetDiagFieldSQLGetDiagRec を呼び出して診断情報を取得します。

  • SQLGetFunctionsSQLGetInfo を呼び出して、ドライバーの機能を検出します。 また、SQLNativeSql を呼び出 して、データ ソースに送信される前に SQL ステートメントに対して行われたテキスト置換の結果を検出します。

  • SQLEndTran の構文を使用してトランザクションをコミットします。 コア レベルのドライバーは、真のトランザクションをサポートする必要はありません。そのため、アプリケーションは SQL_ATTR_AUTOCOMMIT 接続属性に SQL_ROLLBACK も SQL_AUTOCOMMIT_OFF も指定できません。 (詳細については、レベル 2 インターフェイスの適合性 の機能 109 を参照してください。)

  • SQLCancel を呼び出して、実行時データ ダイアログを取り消し、マルチスレッド環境で、別のスレッドで実行されている ODBC 関数を取り消します。 コア レベルのインターフェイス適合性では、関数の非同期実行のサポートや、SQLCancel を使用して非同期に実行する ODBC 関数を取り消す必要はありません。 ドライバーが同時に独立したアクティビティを実施するには、プラットフォームと ODBC ドライバーのどちらもマルチスレッドである必要ありません。 ただし、マルチスレッド環境では、ODBC ドライバーはスレッド セーフである必要があります。 アプリケーションからの要求のシリアル化は、重大なパフォーマンスの問題が発生する可能性がある場合でも、この仕様を実装するのに準拠した方法です。

  • SQLSpecialColumns を呼び出して、テーブルの SQL_BEST_ROWID 行識別列を取得します。 (SQL_ROWVER のサポートは、レベル 2 インターフェイスの適合性 の機能 208 です。)

    重要

    ODBC ドライバーは、コア インターフェイスの適合性レベルで関数を実装する必要があります。