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
系統參數