仕様: | DB2 CLI 2.1 |
この関数は、アプリケーションが実行を続ける前に特定の接続に決定的に切り替える必要がある場合に必要です。この関数は、アプリケーションが DB2 CLI 関数呼び出しを組み込み SQL 関数呼び出しと混合し、複数の接続が関係するときにだけ使用してください。
構文
SQLRETURN SQLSetConnection (SQLHDBC ConnectionHandle); /* hdbc */
関数引き数
データ・タイプ | 引き数 | 使用法 | 説明 |
---|---|---|---|
SQLHDBC | ConnectionHandle | 入力 | アプリケーションが切り替えたい接続に関連した接続ハンドル。 |
使用法
DB2 CLI バージョン 1 では、DB2 CLI 接続関数によって接続要求を出した場合に、組み込み SQL を含むルーチンに対する呼び出しと DB2 CLI 呼び出しを混合することができました。組み込み SQL ルーチンは、単に既存の DB2 CLI 接続を使用します。
以上のことはこれまでどおり当てはまりますが、複雑になっている可能性があります。つまり、DB2 CLI では複数の並行接続が行えます。このことは、組み込み SQL ルーチンが呼び出されるときにどの接続を使用するかがはっきりしなくなったことを意味します。実際に、組み込みルーチンは最新のネットワーク活動に関連した接続を使用します。しかし、アプリケーションの視点から言えば、これは必ずしも決定的なものでなく、この情報を追跡することは困難です。 SQLSetConnection() は、どの接続が活動状態かをアプリケーションが明示的に 指定できるようにするときに使用します。アプリケーションは次に、組み込み SQL ルーチンを呼び出すことができます。
SQLSetConnection() は、アプリケーションが単に DB2 CLI 呼び出しだけを行う場合、必要ありません。これは、各ステートメント・ハンドルが暗黙に接続ハンドルに関連付けられ、特定の DB2 CLI 関数がどの接続を適用するかについてまったく混乱がないからです。
DB2 CLI アプリケーション内に組み込まれた SQL の使用の詳細については、 組み込み SQL と DB2 CLI の混合を参照してください。
戻りコード
診断
表 153. SQLSetConnection SQLSTATE
SQLSTATE | 説明 | 解説 |
---|---|---|
08003 | 接続がクローズされています。 | 提供されている接続ハンドルは、現在データベース・サーバーへのオープン接続と関連していません。 |
HY000 | 一般的なエラーです。 | 特定の SQLSTATE でなく、処理系定義 SQLSTATE で定義されなかった種類のエラーが発生しました。引き数 szErrorMsg 内の SQLError から戻されたエラー・メッセージに、そのエラーと原因が記述されています。 |
制約
なし。
(ここで完全サンプル dbmusemx.sqc を使用することもできます 。)
/* From the CLI sample dbmusemx.sqc */ /* ... */ sqlrc = SQLSetConnection( a_hdbc[0]); MC_HANDLE_CHECK( SQL_HANDLE_DBC, a_hdbc[0], sqlrc, &henv, a_hdbc, MAX_CONNECTIONS ) ;
参照