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


Функция JetSeek

Применимо к: Windows | Windows Server

Функция JetSeek

Функция JetSeek эффективно помещает курсор в запись индекса, которая соответствует условиям поиска, заданным ключом поиска в этом курсоре, и указанным неравенством. Ключ поиска должен быть ранее создан с помощью JetMakeKey.

    JET_ERR JET_API JetSeek(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

Сеанс, используемый для этого вызова.

tableid

Курсор, используемый для этого вызова.

grbit

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

Значение

Значение

JET_bitCheckUniqueness

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

Этот параметр игнорируется, если JET_bitSeekEQ также не указан.

Этот параметр доступен только в Windows Server 2003 и более поздних выпусках.

JET_bitSeekEQ

Курсор будет располагаться в записи индекса, ближайшей к началу индекса, который точно соответствует ключу поиска. Начало индекса — это запись индекса, которая обнаруживается при переходе к первой записи в этом индексе. Начало индекса отличается от нижнего конца индекса, которое может изменяться в зависимости от порядка сортировки ключевых столбцов в индексе.

Этот параметр не имеет смысла использовать с ключом поиска, созданным с помощью JetMakeKey с использованием параметра с подстановочными знаками.

JET_bitSeekGE

Курсор будет располагаться в записи индекса, ближайшей к началу индекса, который больше или равен записи индекса, которая точно соответствует условиям поиска. Начало индекса — это запись индекса, которая обнаруживается при переходе к первой записи в этом индексе. Начало индекса отличается от нижнего конца индекса, которое может изменяться в зависимости от порядка сортировки ключевых столбцов в индексе.

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

JET_bitSeekGT

Курсор будет располагаться в записи индекса, ближайшей к началу индекса, который больше, чем запись индекса, которая точно соответствует условиям поиска. Начало индекса — это запись индекса, которая обнаруживается при переходе к первой записи в этом индексе. Начало индекса отличается от нижнего конца индекса, которое может изменяться в зависимости от порядка сортировки ключевых столбцов в индексе.

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

JET_bitSeekLE

Курсор будет располагаться в записи индекса, ближайшей к концу индекса, которая меньше или равна записи индекса, которая точно соответствует условиям поиска. Конец индекса — это запись индекса, которая обнаруживается при переходе к последней записи в этом индексе. Конец индекса отличается от верхнего конца индекса, который может изменяться в зависимости от порядка сортировки ключевых столбцов в индексе.

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

JET_bitSeekLT

Курсор будет располагаться в записи индекса, ближайшей к концу индекса, которая меньше, чем запись индекса, которая точно соответствует условиям поиска. Конец индекса — это запись индекса, которая обнаруживается при переходе к последней записи в этом индексе. Конец индекса отличается от верхнего конца индекса, который может изменяться в зависимости от порядка сортировки ключевых столбцов в индексе.

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

JET_bitSetIndexRange

Диапазон индексов будет автоматически настроен для всех ключей, которые точно соответствуют ключу поиска. Результирующий диапазон индексов идентичен диапазону, который в противном случае был бы создан вызовом JetSetIndexRange с параметрами JET_bitRangeInclusive и JET_bitRangeUpperLimit. Дополнительные сведения см. в разделе JetSetIndexRange .

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

Этот параметр игнорируется, если JET_bitSeekEQ также не указан.

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

Эта функция позволяет возвращать любые JET_ERRs , определенные в этом API. Дополнительные сведения об ошибках Jet см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

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

JET_errClientRequestToStopJetService

Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService.

JET_errInstanceUnavailable

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

Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errKeyNotMade

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

JET_errNotInitialized

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errRecordNotFound

Не найдена запись индекса, соответствующая условиям поиска.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_wrnSeekNotEqual

Найдена запись индекса, соответствующая условиям поиска. Однако эта запись индекса не была точным совпадением.

JET_errSessionSharingViolation

Один и тот же сеанс нельзя использовать для нескольких потоков одновременно.

Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errTermInProgress

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, завершает работу.

JET_wrnUniqueKey

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

Эта ошибка будет возвращена только в Windows Server 2003 и более поздних выпусках.

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

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

Требования

Требование Значение

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная.

Сервер

Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService