Функция 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