OpenESQL カーソルおよび結果セットの操作

複数の SELECT 文が含まれるように DECLARE CURSOR 文を定義すると、OpenESQL アプリケーションで複数の結果セットをサポートできます。

注: ストアド プロシージャを実行して、複数の結果セットを参照することもできます。この操作方法の詳細については、「OpenESQL ストアド プロシージャおよび結果セットの操作」を参照してください。
特定のカーソルで複数の結果セットを返すには、アプリケーション内の DECLARE CURSOR 文でカーソルを開き、取得する各結果セットの SELECT 文を含める必要があります。次に例を示します。
      EXEC SQL 
          DECLARE C1 CURSOR
          FOR
              SELECT CUSTID FROM COMPANY;
              SELECT CUSTNAME FROM COMPANY;
      END-EXEC
      EXEC SQL OPEN C1 END-EXEC

この例では、2 つの結果セットが戻るようにします。C1 カーソルを開いた後、FETCH 文を実行して最初の結果セット (SELECT CUSTID FROM COMPANY 文で定義された結果セット) を使用します。

FETCH が 100 の SQLCODE (現在の結果セットの終わりを示す) を戻したときに、GET NEXT RESULT SET 文を発行して、次の SELECT 文の結果セットをフェッチします。次に例を示します。
      EXEC SQL 
          GET NEXT RESULT SET FOR C1
      END-EXEC
SELECT CUSTNAME FROM COMPANY の結果セットを使用した後、GET NEXT RESULT SET が 100 の SQLCODE を返し、使用できる結果セットがこれ以上ないことを示します。
注: 使用できる結果セットが他にある場合 (DECLARE CURSOR 文に未処理の SELECT 文が少なくとも1 つある場合)、GET NEXT RESULT SET は 0 の SQLCODE を返します。使用可能なすべての結果セットを取得するには、100 の SQLCODE が返されるまで、GET NEXT RESULT SET 文を発行し続けます。