行のスクロールとフェッチ
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
スクロール可能なカーソルを使用するには、ODBC アプリケーションでは次の操作を行う必要があります。
SQLSetStmtAttr を使用してカーソル機能を設定します。
SQLExecute または SQLExecDirect を使用してカーソルを開きます。
SQLFetch または SQLFetchScroll を使用して行をスクロールおよびフェッチします。
SQLFetch と SQLFetchSroll の両方で、一度に行のブロックをフェッチできます。 返される行数は、 SQLSetStmtAttr を使用して SQL_ATTR_ROW_ARRAY_SIZE パラメーターを設定することによって指定されます。
ODBC アプリケーションでは、 SQLFetch を使用して前方専用カーソルをフェッチできます。
SQLFetchScroll は、カーソルの周りをスクロールするために使用されます。 SQLFetchScroll では、相対フェッチ (現在の行セットの先頭から行セットをフェッチ n 行をフェッチする) と絶対フェッチ (行 n から始まる行セットのフェッチ) に加えて、次の行セット、前行、最初の行セット、および最後の行セットのフェッチがサポート。 絶対フェッチで n が負の場合、結果セットの末尾から行がカウントされます。 たとえば、行 -1 の絶対フェッチは、結果セット内にある最後の行を起点とした行セットをフェッチします。
レポートなどのブロック カーソル機能にのみ SQLFetchScroll を使用するアプリは、次の行セットをフェッチするオプションのみを使用して、結果セットを 1 回渡す可能性があります。 一方、画面ベースのアプリでは、SQLFetchScroll のすべての機能を利用できます。 アプリが行セットのサイズを画面に表示される行数に設定し、画面バッファーを結果セットにバインドする場合、スクロール バー操作を SQLFetchScroll の呼び出しに直接変換できます。
スクロール バーの操作 | SQLFetchScroll のスクロール操作 |
---|---|
1 画面分上へ移動 (PageUp) | SQL_FETCH_PRIOR |
1 画面分下へ移動 (PageDown) | SQL_FETCH_NEXT |
1 行上へ移動 | FetchOffset に -1 を指定した SQL_FETCH_RELATIVE |
1 行下へ移動 | FetchOffset に 1 を指定した SQL_FETCH_RELATIVE |
スクロール ボックスを先頭に移動 | SQL_FETCH_FIRST |
スクロール ボックスを末尾に移動 | SQL_FETCH_LAST |
スクロール ボックスを任意の位置に移動 | SQL_FETCH_ABSOLUTE |