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 игнорирован. |
|
SQL_FETCH_PRIOR |
Предыдущий набор строк; nRows игнорирован. |
|
SQL_FETCH_FIRST |
Первый набор строк в наборе записей; nRows игнорирован. |
|
SQL_FETCH_LAST |
Последний полный набор строк в наборе записей; nRows игнорирован. |
|
SQL_FETCH_ABSOLUTE |
Если nRows > 0, то набор строк, начиная nRows строк с начала набора записей.Если nRows < 0, то набор строк, начиная nRows строк из конца набора записей.Если nRows = 0, затем условие, запустившего -- файла (BOF). |
|
SQL_FETCH_BOOKMARK |
Набор строк, начиная с которой соответствует строке значение закладки nRows. |
Примечание |
---|
Наборы записей - только вперед, Переместить допустимо только со значением 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