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 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤錯誤處理參數

傳回碼

Description

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。

Server

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

標頭

在 Esent.h 中宣告。

程式庫

使用 ESENT.lib。

Dll

需要ESENT.dll。

另請參閱

JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction