行のスクロールとフェッチ
スクロール可能なカーソルを使用するには、ODBC アプリケーションでは次の操作を行う必要があります。
SQLSetStmtAttr を使用してカーソル機能を設定します。
SQLExecute または SQLExecDirect を使用してカーソルを開きます。
SQLFetch または SQLFetchScroll を使用して行をスクロールおよびフェッチします。
SQLFetch と SQLFetchSroll のいずれも、行のブロックを一度にフェッチできます。 返される行数は、SQLSetStmtAttr を使用して SQL_ATTR_ROW_ARRAY_SIZE パラメーターを設定することで指定します。
ODBC アプリケーションでは、SQLFetch を使用し、順方向専用カーソルを介してフェッチを実行できます。
カーソルのスクロールには、SQLFetchScroll を使用します。 SQLFetchScroll は、次の行セット、前の行セット、最初の行セット、最後の行セットのフェッチをサポートするほか、相対フェッチ (現在の行セットの先頭から n 行目の行セットのフェッチ) および絶対フェッチ (n 行目から始まる行セットのフェッチ) をサポートします。 絶対フェッチで n が負の数の場合、行は結果セットの最後から数えられます。 たとえば、行 -1 の絶対フェッチは、結果セット内にある最後の行を起点とした行セットをフェッチします。
レポートなど、ブロック カーソル機能にのみ SQLFetchScroll を使用するアプリケーションは、通常、次の行セットのフェッチのみを使用して、一度に結果セットをパススルーします。 一方、画面ベースのアプリケーションは、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 |