行のスクロールとフェッチ
適用対象:SQL ServerAzure SQL データベースAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
スクロール可能なカーソルを使用するには、ODBC アプリケーションでは次の操作を行う必要があります。
SQLSetStmtAttr を使用してカーソル機能を設定します。
SQLExecute または SQLExecDirect を使用してカーソルを開きます。
SQLFetch または SQLFetchScroll を使用して行をスクロールおよびフェッチします。
SQLFetch
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 |