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


CRecordset::Move

Перемещает указатель текущей записи в наборе записей или переадресуйте или назад.

virtual void Move( 
   long nRows, 
   WORD wFetchType = SQL_FETCH_RELATIVE  
);

Параметры

  • nRows
    Число строк для перемещения переднее или назад. Положительные значения переднее перемещаются в конец набора записей. Отрицательные значения, перемещаются назад к началу.

  • wFetchType
    Определяет набор строк, Переместить выборки. Дополнительные сведения см. в разделе "Примечания".

Заметки

Если передать значение 0 для nRows, то Переместить обновляет текущую запись. Переместить завершить все текущие AddNew или режим Изменить и извлекается значение текущей записи, прежде чем AddNew или Изменить были Вызываются.

Примечание

При перемещении по набору записей, нельзя пропустить удаленные записи.Дополнительные сведения см. в разделе CRecordset::IsDeleted.При открытии CRecordset с набором параметров skipDeletedRecords, Переместить утверждает, если параметр nRows 0.Эта функциональности предотвращает обновление строк, удалены другими клиентскими приложениями, используя одни и те же данные.См. параметр dwOption в Открытие описание skipDeletedRecords.

Переместить изменяет положение набора записей наборов строк. На основе значений для nRows и wFetchType, Переместить извлекает соответствующий набор строк, а затем выполняет первой записью в этом наборе строк текущую запись. Если не реализован bulk строку выборку, то размер набора строк всегда равно 1. При выборке набора строк Переместить непосредственно вызывает функцию-член CheckRowsetError для обработки ошибки в результате выборки.

В зависимости от значений в передаче, Переместить эквивалентны на другие функции-членам CRecordset. В частности, значение wFetchType может отображать функции-члена, и часто более интуитивн предпочитаем методы для перемещения текущую запись.

В следующей таблице перечислены возможные значения для wFetchType, набора строк, Переместить выборки на основе wFetchType и nRows и любого соответствующего функции-члена, соответствующий wFetchType.

wFetchType

Выборке набора строк

Эквивалентный функция-член

SQL_FETCH_RELATIVE (по умолчанию)

Набор строк, начинающийся строк nRows от первой строки в текущем наборе строк.

 

SQL_FETCH_NEXT

Следующий набор строк; nRows игнорирован.

MoveNext

SQL_FETCH_PRIOR

Предыдущий набор строк; nRows игнорирован.

MovePrev

SQL_FETCH_FIRST

Первый набор строк в наборе записей; nRows игнорирован.

MoveFirst

SQL_FETCH_LAST

Последний полный набор строк в наборе записей; nRows игнорирован.

MoveLast

SQL_FETCH_ABSOLUTE

Если nRows > 0, то набор строк, начиная nRows строк с начала набора записей. Если nRows < 0, то набор строк, начиная nRows строк из конца набора записей. Если nRows = 0, затем условие, запустившего -- файла (BOF).

SetAbsolutePosition

SQL_FETCH_BOOKMARK

Набор строк, начиная с которой соответствует строке значение закладки nRows.

SetBookmark

Примечание

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

Предупреждение

Вызов Переместить создает исключение, если набор записей не содержит записей.Для определения, имеет ли набор записей какие-либо записи, вызовите IsBOF и IsEOF.

Примечание

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

Примечание

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

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

Исключения

Этот метод может создавать исключения типа CDBException* и CMemoryException*.

Пример

// rs is a CRecordset or a CRecordset-derived object 

// Change the rowset size to 5
rs.SetRowsetSize(5);

// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);

// Move to the first record in the recordset
rs.MoveFirst();

// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset, 
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);

rs.MoveFirst();
rs.MoveNext();

Требования

Header: afxdb.h

См. также

Ссылки

Класс CRecordset

Диаграмма иерархии

CRecordset::MoveNext

CRecordset::MovePrev

CRecordset::MoveFirst

CRecordset::MoveLast

CRecordset::SetAbsolutePosition

CRecordset::SetBookmark

CRecordset::IsBOF

CRecordset::IsEOF

CRecordset::CheckRowsetError