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