行のスクロールとフェッチ (ODBC)
スクロール可能カーソルを使用する場合、アプリケーションは SQLFetchScroll を呼び出してカーソルを配置し、行をフェッチします。 SQLFetchScroll は、相対スクロール (次、前、相対 n 行)、絶対スクロール (最初、最後、行 n)、ブックマークによる配置がサポートします。 SQLFetchScroll の FetchOrientation 引数と FetchOffset 引数は、次の図に示すように、フェッチする行セットを指定します。
次、前、最初、最後の行セットのフェッチ
絶対行セット、相対行セット、ブックマーク付き行セットのフェッチ
SQLFetchScroll は、カーソルを指定された行に配置し、その行から始まる行セット内の行を返します。 指定した行セットが結果セットの末尾と重なる場合は、部分的な行セットが返されます。 指定した行セットが結果セットの先頭と重なる場合は、通常、結果セットの最初の行セットが返されます。詳細については、「SQLFetchScroll 関数の説明」を参照してください。
場合によっては、アプリケーションはデータを取得せずにカーソルを配置したほうがよい場合ががあります。 例えば、ネットワーク経由で他のデータを取り込まずに、行が存在するかどうかをテストするか、単にその行のブックマークを取得した方がよい場合があります。 これを行うには、SQL_ATTR_RETRIEVE_DATA ステートメント属性を SQL_RD_OFF に設定します。 ブックマーク列にバインドされている変数 (存在する場合) は、このステートメント属性の設定に関係なく、常に更新されます。
行セットが取得されると、アプリケーションは SQLSetPos を呼び出して行セット内の特定の行に配置したり、行セット内の行を更新したりできます。 SQLSetPos の使用方法の詳細については、「SQLSetPos を使用したデータの更新」を参照してください。
Note
ODBC 2.x ドライバーでは、SQLExtendedFetch によるスクロールがサポートされています。 詳細については、「付録 G: 下位互換性に関するドライバー ガイドライン」の「ブロック カーソル、スクロール可能なカーソル、および下位互換性」を参照してください。