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


Функция JetGotoSecondaryIndexBookmark

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

Функция JetGotoSecondaryIndexBookmark

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

Windows XP:JetGotoSecondaryIndexBookmark представлена в Windows XP.

    JET_ERR JET_API JetGotoSecondaryIndexBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvSecondaryKey,
      __in          unsigned long cbSecondaryKey,
      __in_opt      void* pvPrimaryBookmark,
      __in          unsigned long cbPrimaryBookmark,
      __in          const JET_GRBIT grbit
    );

Параметры

sesid

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

tableid

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

pvSecondaryKey

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

cbSecondaryKey

Размер вторичного ключа в буфере.

pvPrimaryBookmark

Буфер, содержащий закладку первичного ключа, используемую для размещения курсора.

cbPrimaryBookmark

Размер закладки первичного ключа в буфере.

grbit

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

Значение

Значение

JET_bitBookmarkPermitVirtualCurrency

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

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

Windows XP: Это возвращаемое значение появилось в Windows XP.

JET_errInvalidBookmark

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

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

  • Указатель буфера закладок имеет значение NULL.

JET_errNoCurrentIndex

Курсор в данный момент не находится на вторичном индексе. Переход к закладке вторичного индекса не имеет смысла, если курсор в настоящее время не использует вторичный индекс. JetGotoBookmark следует использовать, если курсор не находится на вторичном индексе.

JET_errNotInitialized

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

JET_errRecordDeleted

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

Windows XP: Это возвращаемое значение появилось в Windows XP.

JET_errTermInProgress

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

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

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

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

Требования

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

Клиент

Требуется Windows Vista или Windows XP.

Сервер

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

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

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

Библиотека

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

DLL

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

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetSecondaryIndexBookmark
JetGotoBookmark
JetStopService