Основы проектирования приложений баз данных


     квик дек дсп | Декор ЛДСП Дуб Тоскана Дымчатый ЧФМК. |     

Реализация блочной выборки строк


При использовании перемещаемого курсора для изменения текущей позиции курсора и выборки строк используется функция SQLFetchScroll. Эта функция позволяет реализовывать:

  • относительный скроллинг - перемещение по результирующему набору в двух направлениях и на любое число строк;
  • абсолютный скроллинг - перемещение на первую или на последнюю строку, или на строку с указанным номером.

Функция SQLFetchScroll выполняет выборку набора строк из сформированного результирующего набора и возвращает данные для всех связанных столбцов. Наборы строк (rowset) могут быть указаны как через абсолютное или относительное позиционирование, так и посредством закладок (bookmark). В версии ODBC 2.x для этих целей использовалась функция SQLExtendedFetch.

Функция SQLFetchScroll имеет следующее формальное описание:

SQLRETURN SQLFetchScroll( SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset);

Параметр StatementHandle ([Input]) указывает дескриптор оператора.

Перемещение курсора определяется типом выборки, указывается параметром FetchOrientation ([Input]) и может принимать следующие значения:

  • SQL_FETCH_NEXT - переход к следующей строке (относительный скроллинг);
  • SQL_FETCH_PRIOR - переход к предыдущей строке (относительный скроллинг);
  • SQL_FETCH_FIRST - переход к первой строке (абсолютный скроллинг);
  • SQL_FETCH_LAST - переход к последней строке (абсолютный скроллинг);
  • SQL_FETCH_ABSOLUTE - переход к строке с указанным номером (абсолютный скроллинг);
  • SQL_FETCH_RELATIVE - перемещение вперед или назад на указанное количество строк (относительный скроллинг);
  • SQL_FETCH_BOOKMARK - переход к строке по закладке (абсолютный скроллинг).

Количество строк, на которые выполняется перемещение курсора и номер абсолютной позиции, указывается параметром FetchOffset ([Input]).

Параметры FetchOrientation и FetchOffset функции SQLFetchScroll совместно определяют набор строк, который будет извлечен из результирующего набора. На следующей схеме показан механизм выборки строк при позиционировании на следующую, предыдущую, первую или последнюю строку.



Содержание    Вперед