使用上の注意
プロシージャがSQL PROCEDURESのWITH RETURN句またはDBCAREA Returnresulttoオプションを使用してSQLの結果がCALLerまたはアプリケーションに反映するよう要求したとしても、それを対象としたCLIv2ルーチンがDBCAREA Result-sets-OKオプションを使用してそれを許可していなければなりません。このオプションを指定しなかった場合、結果はそこに戻されません。
結果が伝播されると、結果はSQL CALLを含んだ文のあとに、加算された文番号で応答に示されます。 文番号は暗黙文の最初のパーセル(Success、OK、またはResultSummary)と暗黙文の最後のパーセル(EndStatement)の両方に含まれます。 このSuccess、OK、ResultSummaryパーセルには、ActivityType 176も含まれます。 次のパーセルはResultSetで、これはプロシージャを識別し、プロシージャが結果を配置した行番号を提供します。 他の応答パーセルがあれば、ResultSetのあとに続きます。
呼び出し(CALL)を実行するリクエストとストアド プロシージャが発行するリクエストのオプションは異なる場合があります。プロシージャ、呼び出し側、アプリケーションに提供される応答は、それぞれが設定するリクエスト オプションを反映します。 したがって、応答は、そのリクエストのDBCAREA Return-objects-as、Continued-characters-state、APH-response-OK、Return-statement-info、Max-decimal-returned、Return-identity-dataオプションの設定に従います。 プロシージャがDBCAREA MultipartIndicator応答モードを指定してラージ オブジェクト(LOB)を選択したとしても、呼び出し側またはアプリケーションがLOBをサポートしない応答モードを指定している場合、プロシージャはエラーを受け取り、応答は伝播されません。
同様に、プロシージャ、呼び出し側、アプリケーションに提供される応答では、それぞれが設定する文字セットが使用されます。 ただし、照合の場合は別です。 ストアド プロシージャをコンパイルしたときに使用された照合が、すべての応答に使用されます。
プロシージャは、DBCAREAKeep-responseオプションを使用して、SQLストアド プロシージャのSQL DECLARE CURSOR文のSCROLLまたはNO SCROLLで提供されるものと同じ情報をCLIv2に提供できます。 具体的には、「Y」の設定はNO SCROLLに相当し、伝播された結果は、伝播されていない取り出し済み行とともに、次の未取り出し行に配置されます。「P」の設定はSCROLLに相当し、伝播された結果は、以前に取り出した伝播された行とともに、最後の取り出し済み行に配置され、DBCAREA Positioning-actionを指定するCLIv2 Fetch関数、またはCLIv2 Rewind関数を使用した明示的配置で使用できます。 Success、OK、ResultSummaryパーセルのActivityCountフィールドは、初期配置にかかわらず、使用可能なすべての行を示します。
返された行の配置と異なり、ロケーターによって選択されたラージ オブジェクト(LOB)のオフセットをプロシージャが配置することはできません。 プロシージャによるLOB内の配置はいずれも反映されません。
言語 | 変数名 |
---|---|
COBOL: | DYNAMIC-RESULT-SETS-ALLOWED |
C: | dynamic_result_sets_allowed |
ルーチン | 動作 |
---|---|
DBCHINI: | 書き込み |
DBCHCL: | 読み取り(RSUP;IRQ) |
使用者 | 動作 |
---|---|
アプリケーション プログラム | 書き込み |
このDBCAREAフィールドに設定できる値は、「Y」および「N」です。