共用方式為


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