共用方式為


JetBeginTransaction2 函式

適用于: Windows |Windows Server

JetBeginTransaction2 函式

JetBeginTransaction2函式會導致會話進入交易並建立新的儲存點。 在單一會話中可以多次呼叫此函式,以建立額外的儲存點。 這些儲存點可用來選擇性地保留或捨棄資料庫的變更。

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

參數

sesid

要用於這個呼叫的會話。

grbit

一組位,其中包含要用於此呼叫的選項,其中包含下列零個或多個選項。

意義

JET_bitTransactionReadOnly

交易不會修改資料庫。 如果嘗試更新,該作業將會因為JET_errTransReadOnly而失敗。 除非在指定的會話尚未在交易中時要求此選項,否則會忽略此選項。 此選項僅適用于 Windows XP。

傳回值

此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤錯誤處理參數

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errClientRequestToStopJetService

無法完成作業,因為與會話相關聯之實例上的所有活動因 JetStopService呼叫而停止。

JET_errInstanceUnavailable

無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。

此錯誤只會由 Windows XP 和更新版本傳回。

JET_errNotInitialized

無法完成作業,因為與會話相關聯的實例尚未初始化。

JET_errRestoreInProgress

無法完成作業,因為與會話相關聯的實例上正在進行還原作業。

JET_errSessionSharingViolation

同一個會話不能同時用於一個以上的執行緒。 此錯誤只會由 Windows XP 和更新版本傳回。

JET_errTermInProgress

無法完成作業,因為與會話相關聯的實例正在關閉。

JET_errTransTooDeep

無法啟動新的交易,因為會話已經是資料庫引擎允許的最大儲存點深度。

成功時,提供的會話將會在交易內。 如果會話先前是在交易內部,則會建立新的儲存點。

失敗時,會話的交易狀態會保持不變。 不會變更資料庫狀態。

備註

如需交易運作方式的詳細資訊,請參閱 JetBeginTransaction

規格需求

需求

用戶端

需要 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
JetGetSystemParameter
JetResetSessionCoNtext
JetRollback
JetSetSessionCoNtext
系統參數