複数の 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 文を発行し続けます。