Прокрутка и выборка строк
Чтобы можно было использовать прокручиваемый курсор в приложение 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 |
---|---|
На страницу вверх |
SQL_FETCH_PRIOR |
На страницу вниз |
SQL_FETCH_NEXT |
На строку вверх |
SQL_FETCH_RELATIVE с FetchOffset, равным -1 |
На строку вниз |
SQL_FETCH_RELATIVE с FetchOffset, равным 1 |
Ползунок вверх |
SQL_FETCH_FIRST |
Ползунок вниз |
SQL_FETCH_LAST |
Случайное положение ползунка |
SQL_FETCH_ABSOLUTE |