GET NEXT RESULT SET

次の結果セットを、開いているカーソルで利用できるようにします。

構文:

>>---EXEC SQL---.------------.--->
                +-AT db_name-+

 >--GET NEXT RESULT SET FOR---cursor_name---END-EXEC---><

パラメーター:

AT db_name DECLARE DATABASE を使用して宣言されたデータベースの名前。この句は必須ではありません。省略すると、DECLARE CURSOR 文に関連付けられている接続に自動的に切り替わります (その接続が現在の接続とは異なる場合。DECLARE CURSOR 文の実行中のみ有効)。
cursor_name すでに宣言済みの、開いたカーソル。

説明:

DIALECT=MAINFRAME を使用せずにコンパイルされたクライアント アプリケーションでは、複数の結果セットをストアド プロシージャから取得する場合、または複数の SELECT 文で定義される DECLARE CURSOR 文から取得する場合に、GET NEXT RESULT SET によって次の結果セットを利用できます。

追加の結果セットがない場合、GET NEXT RESULT SET は 100 に等しい SQLCODE を返し SQLSTATE を 02000 に設定します。

例:

           exec sql declare c cursor for 
               call TestProc2(:hv-country) 
           end-exec
           
           exec sql open c end-exec
           
           display " "
           display "First result set from proc"
           display " "
       
           perform until exit
               exec sql fetch c into
                   :CustomerID, :Company, :City
               end-exec
               if sqlcode = 100 or sqlcode < 0
                   exit perform
               end-if
               display CustomerID " " City
           end-perform
           
            *> Always get SQLCODE 100 at the end of a result set
            *> until you close the cursor or ask for another result set
            exec sql fetch c into
                :CustomerID, :Company, :City
            end-exec
            if sqlcode not  = 100
                display "FAIL: Fetch after SQLCODE 100 OK"
            end-if
           
            *> Ask for another result set, SQLCODE 100 if there isn't one
            exec sql get next result set for c end-exec
           
            display " "
            display "Second result set from proc"
            display " "

            perform until exit
               exec sql fetch c into
                   :CustomerID, :Company, :City
               end-exec
               if sqlcode = 100 or sqlcode < 0
                   exit perform
               end-if
               display CustomerID " " City
            end-perform