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

无法完成操作,因为与会话关联的实例正在关闭。

成功后,在给定会话的当前保存点期间对数据库所做的任何更改都将撤消,并且该保存点将结束。 如果会话的最后一个保存点已结束,则会话将退出事务。

失败时,会话的事务状态将保持不变。 不会更改数据库状态。 回滚期间失败被视为灾难性的数据库错误。

备注

必须有一次对 JetCommitTransactionJetRollback 的调用,才能匹配给定会话对 JetBeginTransaction 的每次调用。

如果使用 JetOpenTable (打开任何游标,例如,在回滚的保存点期间) ,则该游标将被关闭。

要求

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

服务器

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction