Прокрутка и выборка строк
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure 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 только для его возможностей блок-курсора, например отчетов, скорее всего, проходят через результирующий набор один раз, используя только параметр для получения следующего набора строк. С другой стороны, приложения на основе экрана могут воспользоваться всеми возможностями SQLFetchScroll. Если приложение задает размер набора строк в число строк, отображаемых на экране, и привязывает буферы экрана к результирующий набор, он может перевести операции полосы прокрутки непосредственно на вызовы SQLFetchScroll.
Операция полосы прокрутки | Параметр прокрутки SQLFetchScroll |
---|---|
PAGE UP | SQL_FETCH_PRIOR |
PAGE DOWN | SQL_FETCH_NEXT |
На строку вверх | SQL_FETCH_RELATIVE с FetchOffset равным -1 |
На строку вниз | SQL_FETCH_RELATIVE с FetchOffset, равным 1 |
Ползунок вверх | SQL_FETCH_FIRST |
Ползунок вниз | SQL_FETCH_LAST |
Случайное положение ползунка | SQL_FETCH_ABSOLUTE |