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


CDaoRecordset::Seek

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

BOOL Seek( 
   LPCTSTR lpszComparison, 
   COleVariant* pKey1, 
   COleVariant* pKey2 = NULL, 
   COleVariant* pKey3 = NULL  
); 
BOOL Seek( 
   LPCTSTR lpszComparison, 
   COleVariant* pKeyArray, 
   WORD nKeys  
);

Параметры

  • lpszComparison
    Одно из следующих строковых выражений: "<", "<=", "=", ">=" или ">".

  • pKey1
    Указатель на COleVariant, значение которого соответствует первому полю в индексе. Обязательное.

  • pKey2
    Указатель на COleVariant, значение которого соответствует второму полю в индексе, если таковые имеются. Значения по умолчанию NULL.

  • pKey3
    Указатель на COleVariant, значение которого соответствует третий полю в индексе, если таковые имеются. Значения по умолчанию NULL.

  • pKeyArray
    Указатель на массив вариантов. Размер массива соответствует числу полей в индексе.

  • nKeys
    Целое число, соответствующее размеру массива, в котором количество полей в индексе.

    Примечание

    Не указывайте подстановочные знаки в ключах.Подстановочные знаки не приведут к Seek возвращать соответствующие записи.

Возвращаемое значение

Ненулевой если найдены эквивалентен записи, в противном случае – значение 0.

Заметки

Используйте вторую версию (массива) Seek для обработки индексы 4 полей или более.

Включает индекс Seek высокой производительности при поиске на наборах записей пользователем табличный тип. Необходимо задать текущий индекс путем вызова SetCurrentIndex перед вызовом Seek. Если индекс неуникален определяет ключевое поле или поля, Seek находит первую запись, удовлетворяющий условию. Если не устанавливать индекс, то создается исключение.

Обратите внимание, что если не создан набор записей в юникоде, то объекты COleVariant должны быть объявлены явно ANSI. Это делается с помощью форм COleVariant::COleVariant( lpszSrc**,** vtSrc ) конструктора с vtSrc, для VT_BSTRT (ANSI) или с помощью функции SetString( lpszSrc**,** vtSrcCOleVariant ) с vtSrc задает значение VT_BSTRT.

При вызове Seek передается одно или несколько значений ключей и оператора сравнения ("<", "<=", "=", ">=" или ">"). Seek выполняет поиск по полям заданного ключа и найдите первую запись, которая удовлетворяет следующим условиям указанного lpszComparison и pKey1. Как только найден, Seek возвращает ненулевое и делает то запись current of. Если Seek не удается найти совпадение, то Seek возвращает ноль и текущая запись не определено. При использовании объектов непосредственно, необходимо явно проверить свойство NoMatch.

Если lpszComparison "=", ">=" или ">", то запускается Seek в начале индекса. Если lpszComparison "<" или "<=", то запускается Seek в конце индекса и поиска назад, если нет повторяющихся элементов указателя в конце. В этом случае начинается Seek в произвольной записи повторяющихся элементов среди указателя в конце индекса.

Не должно быть текущей записи при использовании Seek.

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

Нельзя вызывать Seek для вложенной таблицы любого типа, поскольку вложенные таблицы должен быть открыт как наборы записей является динамическим подмножеством данных- типа или моментальный снимок- типа. Однако если вызвать CDaoDatabase::Open непосредственно для открытия базы данных ISAM подключения драйвера, можно вызвать Seek для таблиц в этой базе данных, хотя производительность может быть медленна.

Дополнительные сведения см. в разделе "метод search" в Справке DAO.

Требования

Header: afxdao.h

См. также

Ссылки

Класс CDaoRecordset

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

CDaoRecordset::FindFirst

CDaoRecordset::FindLast

CDaoRecordset::FindNext

CDaoRecordset::FindPrev

CDaoRecordset::Move

CDaoRecordset::MoveFirst

CDaoRecordset::MoveLast

CDaoRecordset::MoveNext

CDaoRecordset::MovePrev

COleVariant::COleVariant

COleVariant::SetString