SQLBindFileToParam() CLI 関数の最後のパラメーター、IndicatorValue は 現在 「出力 (据え置き)」と書かれています。 これは 「入力 (据え置き)」となります。
次のテキストが第 5 章、「"DB2 CLI 関数"」に追加されました。
仕様: DB2 CLI 7.x
SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2);
データ・タイプ | 引き数 | 使用 | 記述 |
---|---|---|---|
SQLHSTMT | StatementHandle | 入力 | ステートメント・ハンドル。 |
SQLHSTMT | StatementHandle | 入力 | ステートメント・ハンドル。 |
ストアード・プロシージャーは、終了後にカーソルをオープンしたままにしておくことで、 複数の結果セットを返します。最初の結果セットは常に、ストアード・プロシージャーを 呼び出したステートメント・ハンドルを使用することによってアクセスされます。複数の 結果セットが返される場合、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 がオープン・カーソルを 持っているか、または StatementHandle1 と StatementHandle2 が 同じ接続にない場合は、SQL_ERROR を返します。エラーまたは警告が返されない場合、 SQLError() は常に StatementHandle1 で呼び出されているはずです。
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 属性を使用して 設定することができます。 |
SQLMoreResults() だけがパラメーター化照会に使用できます。