共用方式為


JetDupCursor 函式

適用于: Windows |Windows Server

JetDupCursor 函式

JetDupCursor函式會複製開啟的資料指標,並將控制碼傳回給重複的資料指標。 如果重複的資料指標是唯讀資料指標,則重複的資料指標也是唯讀資料指標。 任何與建構搜尋索引鍵或更新記錄相關的狀態都不會複製到重複的資料指標中。 此外,原始資料指標的位置不會重複到重複的資料指標中。 重複的資料指標一律會在叢集索引上開啟,而且其位置一律位於資料表的第一個資料列上。

    JET_ERR JET_API JetDupCursor(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_TABLEID* ptableid,
      __in          JET_GRBIT grbit
    );

參數

sesid

要用於這個呼叫的會話。

tableid

要用於這個呼叫的資料指標。

ptableid

tableid的指標。

grbit

保留供未來使用。

傳回值

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

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。

JET_errNotInitialized

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

JET_errOutOfCursors

沒有可用的資料指標資源存在。

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

JET_errTermInProgress

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

成功時, ptableid 會設定為重複的資料指標。

失敗時,不會進行任何變更。 tableid的狀態不變。

備註

複製的資料指標沒有複製整個資料指標狀態。 重復資料指標的位置,包括目前的索引,通常與指定的資料指標不同。 重複的資料指標一律會在叢集索引和資料表的第一個資料列上傳回。 如果資料表是空的,則重複的資料指標不在任何資料列上。

使用 JetDupCursor 開啟的 資料表通常應該使用 JetCloseTable關閉。 當在交易中呼叫 JetDupCursor ,且 (使用 JetRollback) 回復交易時,就會發生此規則的例外狀況。 回復交易時,資料指標會自動關閉。 在此情況下,使用 JetCloseTable關閉資料表時發生錯誤。

可以同時開啟的資料表數目會受到 直接JET_paramMaxOpenTables影響。 如需詳細資訊,請參閱 系統參數

規格需求

需求

用戶端

需要 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_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
系統參數