Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » Embedded SQL » データのフェッチ

 

一度に複数のローをフェッチする

FETCH 文は一度に複数のローをフェッチするように変更できます。こうするとパフォーマンスが向上することがあります。これを「ワイドフェッチ」または「配列フェッチ」といいます。

SQL Anywhere は、ワイドプットとワイド挿入もサポートします。

Embedded SQL でワイド・フェッチを使用するには、コードに次のような FETCH 文を含めます。

EXEC SQL FETCH ... ARRAY nnn

ARRAY nnn は FETCH 文の最後の項目です。フェッチ回数を示す nnn にはホスト変数も使用できます。SQLDA 内の変数の数はローあたりのカラム数と nnn との積にしてください。最初のローは SQLDA の変数 0 から (ロー当たりのカラム数) - 1 に入り、以後のローも同様です。

各カラムは、SQLDA の各ローと同じ型にしてください。型が同じでない場合、SQLDA_INCONSISTENT エラーが返されます。

サーバーはフェッチしたレコード数を SQLCOUNT に返します。この値は、エラーまたは警告がないかぎり、常に正の数です。ワイドフェッチでは、エラーではなくて SQLCOUNT が 1 の場合、有効なローが 1 つフェッチされたことを示します。

 例
 ワイドフェッチの使用上の注意
 参照