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


Функция JetGetCursorInfo

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

Функция JetGetCursorInfo

Функция JetGetCursorInfo используется для определения того, приведет ли обновление текущей записи курсора к конфликту записи на основе текущего состояния обновления записи. Возможно, что в конечном итоге будет возвращен конфликт записи, даже если JetGetCursorInfo возвращает JET_errSuccess, так как другой сеанс может обновить запись до того, как текущий сеанс сможет обновить ту же запись.

    JET_ERR JET_API JetGetCursorInfo(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

Параметры

sesid

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

tableid

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

pvResult

Зарезервировано для последующего использования.

cbMax

Должен иметь значение 0 (ноль), в противном случае не используется. Он доступен для будущих функциональных возможностей.

InfoLevel

Должен иметь значение 0 (ноль), в противном случае не используется. Он доступен для будущих функциональных возможностей.

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

JET_errInvalidParameter

Либо cbMax не равно 0 (ноль), либо InfoLevel не равно 0 (ноль).

JET_errNoCurrentRecord

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

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

JET_errTermInProgress

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

JET_errWriteConflict

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

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

При сбое, если возвращается отрицательный код ошибки, курсор или база данных не влияет.

Комментарии

Эта операция не влияет на состояние курсора или данных. Он возвращает только код ошибки, описывающий, известно ли, что обновление текущей записи в вызывающем сеансе приводит к JET_errWriteConflict, или неизвестно для возврата JET_errWriteConflict. Если другой сеанс уже обновил эту запись для использования, это уверено, что обновление этой записи этим сеансом приведет к конфликту записи. Это будет верно до тех пор, пока сеанс не зафиксирует или не выполнит откат своих транзакций до уровня транзакции 0 (нуль). Однако, если JetGetCursorInfo возвращает JET_errSuccess, другой сеанс по-прежнему может обновить эту запись до текущего сеанса. Таким образом, обновление текущей записи этим сеансом в текущей транзакции по-прежнему может привести к конфликту записи.

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

См. также:

JET_ERR
JET_SESID
JET_TABLEID
JetGetLock
JetPrepareUpdate
JetStopService
JetUpdate