JetGetCursorInfo 函式
適用于: Windows |Windows Server
JetGetCursorInfo 函式
JetGetCursorInfo函式可用來根據記錄的目前更新狀態,判斷資料指標目前記錄的更新是否會導致寫入衝突。 即使 JetGetCursorInfo 傳回JET_errSuccess,最終還是會傳回寫入衝突,因為另一個會話可能會在目前的會話能夠更新相同的記錄之前更新記錄。
JET_ERR JET_API JetGetCursorInfo(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
參數
sesid
將用於此呼叫的會話。
tableid
將用於這個呼叫的資料指標。
pvResult
保留供未來使用。
cbMax
必須設定為 0 (零) ,否則為未使用。 未來功能已存在。
InfoLevel
必須設定為 0 (零) ,否則為未使用。 未來功能已存在。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errClientRequestToStopJetService |
因為與會話相關聯的實例上的所有活動因為對 JetStopService的呼叫而停止,所以無法完成作業。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errInvalidParameter |
cbMax不是 0 (零) ,或 InfoLevel不是 0 (零) 。 |
JET_errNoCurrentRecord |
資料指標目前不在記錄上,因此無法傳回邏輯記錄的資訊。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
因為與會話相關聯的實例上正在進行還原作業,所以無法完成作業。 |
JET_errSessionSharingViolation |
同一個會話不能同時用於多個執行緒。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errTermInProgress |
因為與會話相關聯的實例正在關閉,所以無法完成作業。 |
JET_errWriteConflict |
資料指標的目前記錄已由另一個會話更新,而此會話的此記錄更新將會導致寫入衝突。 |
成功時,此作業不會影響游標的位置,但只會指出目前沒有其他會話已更新此記錄。
失敗時,如果傳回負錯誤碼,則不會對資料指標或資料庫造成任何影響。
備註
這項作業不會影響資料指標或資料的狀態。 它只會傳回錯誤碼,描述呼叫會話對目前記錄的更新是否已知會導致JET_errWriteConflict,或未知傳回JET_errWriteConflict。 如果另一個會話已更新此記錄以使用該記錄,則確定此會話的此記錄更新將會導致寫入衝突。 在會話認可或將交易回復至交易層級 0 (零) 之前,這會是 true。 不過,如果 JetGetCursorInfo 傳回JET_errSuccess,另一個會話仍然可以在目前的會話之前更新此記錄,因此,此會話在目前的交易中仍可能會更新目前的記錄,因而造成寫入衝突。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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_SESID
JET_TABLEID
JetGetLock
JetPrepareUpdate
JetStopService
JetUpdate