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


Функция JetRollback

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

Функция JetRollback

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

    JET_ERR JET_API JetRollback(
      __in          JET_SESID sesid,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

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

grbit

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

Значение

Значение

JET_bitRollbackAll

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

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

JET_errNotInitialized

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

JET_errNotInTransaction

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

JET_errRestoreInProgress

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

JET_errRollbackError

Невозможно выполнить откат изменений из-за неустранимой ошибки.

JET_errSessionSharingViolation

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

JET_errTermInProgress

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

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

При сбое транзакционный режим сеанса останется неизменным. Изменение состояния базы данных не произойдет. Сбой во время отката считается катастрофической ошибкой базы данных.

Комментарии

Для сопоставления каждого вызова JetBeginTransaction для данного сеанса должен быть один вызов JetCommitTransaction или JetRollback.

Если какие-либо курсоры были открыты (например, с помощью JetOpenTable) во время отката точки сохранения, этот курсор будет закрыт.

Требования

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

Клиент

Требуется 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
JetBeginTransaction
JetCommitTransaction