リリース情報


40.8 第 5 章 DB2 CLI 関数

40.8.1 SQLBindFileToParam - LOB ファイル参照を LOB パラメーターにバインド

SQLBindFileToParam() CLI 関数の最後のパラメーター、IndicatorValue は現在 「出力 (据え置き)」と書かれています。これは 「入力 (据え置き)」となります。

|40.8.2 SQLColAttribute -- 列属性を戻す

| | |

|以下の更新事項が引き数 SQL_DESC_AUTO_UNIQUE_VALUE および SQL_DESC_UPDATABLE の「説明」欄に |追加されます。 |

|SQL_DESC_AUTO_UNIQUE_VALUE
|どの DB2 SQL データ・タイプの場合でも、NumericAttributePtr|は SQL_FALSE が戻されます。常に SQL_FALSE が戻されるのは、現在 DB2 CLI はある列が一致列かどうかを |判別できないからです。この制限は、ODBC 仕様に完全には準拠していないためのものです。 |UNIX および Windows サーバー版 DB2 CLI の将来のバージョンでは、 |自動固有化がサポートされるようになります。

|SQL_DESC_UPDATABLE
|列データ・タイプが更新可能データ・タイプかどうかを指示します。 | |

|40.8.3 SQLGetInfo - 一般情報の取得

| |

|「SQLGetInfo によって戻される情報」の下の「使用法」セクションに記載されている情報は、 |次のように訂正されます。 |

|SQL_DATABASE_NAME (ストリング)
|使用中の現行データベースの名前。
|注:
このストリングは、非ホスト・システム |で SELECT CURRENT SERVER ステートメントによって戻されるのと同じものです。 |DB2 (OS/390 版) や DB2 (OS/400 版) のようなホスト・データベースの場合は、戻されるストリング |は DCS データベース名 (DB2 コネクト・ゲートウェイでの CATALOG DCS DATABASE DIRECTORY コマンドの |発行時に指定されたもの) です。 |
|

|40.8.4 SQLGetLength - ストリング値の長さの検索

| |

|表 113「SQLGetLength の引き数」の脚注は、次のように訂正されます。

|注 : a これには DBCLOB データ用の文字が使用されます。

40.8.5 SQLNextResult - 次の結果セットを別のステートメント・ハンドルに関連付ける

次のテキストが第 5 章、「DB2 CLI 関数」に追加されました。

40.8.5.1 目的

仕様: DB2 CLI 7.x

40.8.5.2 構文

SQLRETURN   SQLNextResult	(SQLHSTMT	StatementHandle1
			 	                         SQLHSTMT	StatementHandle2);

40.8.5.3 関数の引き数


表 13. SQLNextResult 引き数

データ・タイプ 引き数 使用 記述
SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。
SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。

40.8.5.4 使用法

ストアード・プロシージャーは、終了後にカーソルをオープンしたままにしておくことで、複数の結果セットを返します。最初の結果セットは常に、ストアード・プロシージャーを呼び出したステートメント・ハンドルを使用することによってアクセスされます。複数の結果セットが返される場合、SQLMoreResults() または SQLNextResult() を使用して結果セットを記述およびフェッチすることができます。

SQLMoreResults() は、最初の結果セット用にカーソルをクローズし、次の結果セットを処理するために使用されます。SQLNextResult() は、 StatementHandle1 にあるカーソルをクローズせずに、次の結果セットを StatementHandle2 に移動します。どちらの関数も、フェッチする結果セットがない場合は、SQL_NO_DATA_FOUND を返します。

SQLNextResult() を使用すると、他のステートメント・ハンドルに転送された順序で結果セットを処理することができます。StatementHandle1 にカーソル (オープン結果セット) がなくなるまで、SQLMoreResults() および SQLNextResult() に対する混合呼び出しが可能です。

SQLNextResult() が SQL_SUCCESS を返すとき、次の結果セットは StatementHandle1 との関連はなくなります。代わりに次の結果セットは、 SQLExecDirect() の呼び出しが StatementHandle2 での照会を正常に実行したように、StatementHandle2 と関連付けられます。このためカーソルは、SQLNumResultSets()SQLDescribeCol()、または SQLColAttribute() を使用して記述することができます。

SQLNextResult() が呼び出された後、StatementHandle2 に関連付けられた結果セットは残りの結果セットのチェーンから除去され、 SQLNextResult() または SQLMoreResults() で使用できません。このことは、'n' 個の結果セットについて SQLNextResult() を最大 'n-1' 回正常に呼び出すことができることを示しています。

SQLFreeStmt() が SQL_CLOSE オプション指定で呼び出されるか、または SQLFreeHandle()HandleType を SQL_HANDLE_STMT に設定して呼び出されると、このステートメント・ハンドルで保留された結果セットはすべて廃棄されます。

SQLNextResult() は、StatementHandle2 がオープン・カーソルを持っているか、または StatementHandle1StatementHandle2 が同じ接続にない場合は、SQL_ERROR を返します。エラーまたは警告が返されない場合、 SQLError() は常に StatementHandle1 で呼び出されているはずです。

注:
SQLMoreResults() はまた、 SQLParamOptions() および SQLBindParameter() で指定された入力パラメーター値の配列を使用してパラメーター化照会を操作します。ただし SQLNextResult() はこれをサポートしません。

40.8.5.5 戻りコード

40.8.5.6 診断


表 14. SQLNextResult SQLSTATEs

SQLSTATE 記述 説明
40003 08S01 通信リンク障害。 アプリケーションとデータ・ソース間の通信リンクに、関数の完了前に障害が起きました。
58004 予期しないシステム障害。 回復不能システム・エラー。
HY001 メモリー割り振り失敗。 DB2 CLI が、関数の実行または完了をサポートするために必要なメモリーを割り振れません。
HY010 関数シーケンス・エラー。

data-at-execute (SQLParamData() , SQLPutData()) 操作中に関数が呼び出されました。

StatementHandle2 は、関連付けられたオープン・カーソルを持っています。

BEGIN COMPOUND および END COMPOUND SQL 操作中に関数が呼び出されました。

HY013 予期しないメモリー・ハンドリング・エラー。 DB2 CLI が、関数の実行または完了をサポートするために必要なメモリーをアクセスできませんでした。
HYT00 タイムアウト満了。 データ・ソースが結果セットを返す前にタイムアウト期間が満了しました。タイムアウトは、 Windows 3.1 や Macintosh System 7 などの非マルチタスク・システムでのみサポートされます。タイムアウト期間は SQLSetConnectAttr() の SQL_ATTR_QUERY_TIMEOUT 属性を使用して設定することができます。

40.8.5.7 制約事項

SQLMoreResults() だけがパラメーター化照会に使用できます。

40.8.5.8 参照

|40.8.6 SQLSetEnvAttr - 環境属性の設定

|

|以下は、「使用法」の「環境属性」セクションの追加の環境属性です。 |

|SQL_ATTR_KEEPCTX
|環境ハンドルがフリーの場合にコンテキストを保持するかどうかを指定する |32 ビット整数値です。この属性は、環境レベルにおいて設定される必要があります。 |複数スレッド・アプリケーションが、各スレッドの接続、データベース・リソース、 |およびデータ伝送に関連したコンテキストを管理するのに使用されます。 |可能な値は以下の通りです。 |

|

|注:
これは IBM 拡張です。 |
|

|40.8.7 SQLSetStmtAttr -- ステートメント関連のオプションの設定

| |

|ステートメント属性 SQL_ATTR_QUERY_TIMEOUT に関する既存の情報は、 |以下の情報に置き換えられます。 |

|SQL_ATTR_QUERY_TIMEOUT (DB2 CLI v2)
|SQL ステートメントの実行を何秒待ったらアプリケーションに制御を戻すかについて、 |その秒数を表す 32 ビット整数値。 |このオプションは、実行時間の長い照会を終了させるために設定および使用できます。 |値 0 は、タイムアウトにならないことを意味します。 |DB2 CLI は、マルチスレッド化をサポートするすべてのプラットフォームで非ゼロ値をサポートします。 |


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]