Поделиться через


Набор записей. Прокрутка (ODBC)

Обновлен: Ноябрь 2007

Данный раздел посвящен классам ODBC библиотеки MFC.

После открытия набора записей необходимо получить доступ к записям для отображения значений, выполнения расчетов, создания отчетов и т. д. Прокрутка позволяет переходить от записи к записи в пределах набора записей.

Содержание раздела:

  • Переход от одной записи к другой в наборе записей.

  • Условия поддержки функций перехода.

Переход от одной записи к другой

Класс CRecordset содержит функции-члены Move для осуществления переходов в наборе записей. С помощью этих функций текущая запись перемещается по строкам. При реализации групповой выборки строк операция Move изменяет положение набора записей по размеру набора строк. Если групповая выборка строк не реализуется, вызов функции Move изменяет положение набора записей по одной записи каждый раз. Дополнительные сведения о групповой выборке строк см. в разделе Набор записей. Групповая выборка строк (ODBC).

zk3sa88s.alert_note(ru-ru,VS.90).gifПримечание.

При перемещении по набору записей удаленные записи могут не быть пропущены. Дополнительные сведения см. в описании функции-члена IsDeleted.

В дополнение к функциям Move, CRecordset предоставляет функции-члены для проверки, не был ли выполнен переход за границы набора записей.

Чтобы определить, возможна ли прокрутка в наборе записей, необходимо вызвать функцию-член CanScroll.

Переход

  1. Вперед на одну запись или набор строк: вызовите функцию-член MoveNext.

  2. Назад на одну запись или набор строк: вызовите функцию-член MovePrev.

  3. К первой записи в наборе записей: вызовите функцию-член MoveFirst.

  4. К последней записи в наборе записей или к последнему набору строк: вызовите функцию-член MoveLast.

  5. N записей, относительно текущей позиции: вызовите функцию-член Move.

Проверка, находится ли указатель текущей записи в конце или начале набора записей

  1. Был ли выполнен переход за границы набора (последней записи)? Вызовите функцию-член IsEOF.

  2. Был ли выполнен переход за границы набора (первой записи) при движении от конца к началу? Вызовите функцию-член IsBOF.

В следующем примере кода используются функции IsBOF и IsEOF для определения границ набора записей при переходах в одном из направлений.

// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );

if( rsCustSet.IsBOF( ) )
    return;
    // The recordset is empty

// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
    rsCustSet.MoveNext( );

// Move to the last record
rsCustSet.MoveLast( );

// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
    rsCustSet.MovePrev( );

// First record is current again
rsCustSet.MoveFirst( );

IsEOF возвращает ненулевое значение если набор записей располагается за последней записью. IsBOF возвращает ненулевое значение если набор записей располагается перед первой записью (перед всеми записями). В любом из случаев отсутствует текущая запись для работы. При вызове MovePrev если IsBOF уже имеет значение TRUE или вызове MoveNext если IsEOF уже имеет значение TRUE, платформа создает CDBException. Можно также использовать IsBOF и IsEOF для проверки на пустой набор записей.

Дополнительные сведения о перемещении по набору записей см. в разделе Набор записей. Закладки и абсолютное позиционирование (ODBC).

Когда поддерживается перемещение

Изначально в SQL обеспечивалось только перемещение вперед, однако ODBC расширяет возможности переходов. Возможный уровень поддержки перемещения зависит от драйверов ODBC с которыми работает приложение, уровня API соответствия драйверов ODBC и того, загружена ли в память библиотека курсоров ODBC. Дополнительные сведения см. в разделе ODBC и ODBC. Библиотека курсоров ODBC.

zk3sa88s.alert_note(ru-ru,VS.90).gifСовет.

Использование библиотеки курсоров можно контролировать. См. параметры bUseCursorLib и dwOptions к CDatabase::Open.

zk3sa88s.alert_note(ru-ru,VS.90).gifПримечание.

В отличие от классов MFC DAO, классы MFC ODBC не предоставляют набор функций Find для поиска следующей (или предыдущей) записи, которая отвечает указанным критериям.

См. также

Основные понятия

Набор записей (ODBC)

Набор записей. Фильтрация записей (ODBC)

Ссылки

CRecordset::CanScroll

CRecordset::CheckRowsetError