接続ハンドル

接続は、ドライバーとデータ ソースで構成されます。 接続ハンドルは、各接続を識別します。 接続ハンドルは、使用するドライバーだけでなく、そのドライバーで使用するデータ ソースも定義します。 ODBC (ドライバー マネージャーまたはドライバー) を実装するコードのセグメント内で、接続ハンドルは、次のような接続情報を含む構造体を識別します。

  • 接続マネージャーの状態

  • 現在の接続レベルの診断

  • 接続で現在割り当てられているステートメントと記述子のハンドル

  • 各接続属性の現在の設定

ODBC では、ドライバーでサポートされている場合、複数の同時接続は防止されません。 そのため、特定の ODBC 環境では、複数の接続ハンドルが、さまざまなドライバーとデータ ソース、同じドライバーとさまざまなデータ ソース、または同じドライバーとデータ ソースへの複数の接続を指している場合があります。 一部のドライバーでは、サポートされているアクティブな接続の数が制限されます。SQLGetInfo の SQL_MAX_DRIVER_CONNECTIONS オプションは、特定のドライバーがサポートするアクティブな接続の数を指定します。

接続ハンドルは、主にデータ ソース (SQLConnectSQLDriverConnect、または SQLBrowseConnect) への接続、データ ソース (SQLDisconnect)、ドライバーとデータ ソース (SQLGetInfo) に関する情報の取得、診断の取得 (SQLGetDiagFieldSQLGetDiagRec)、トランザクションの実行 (SQLEndTran) に使用されます。 また、接続属性 (SQLSetConnectAttr と SQLGetConnectAttr) の設定と取得、および SQL ステートメント (SQLNativeSql) のネイティブ形式の取得時にも使用されます。

接続ハンドルはSQLAllocHandle で割り当てられ、SQLFreeHandle で解放されます。