JetGetRecordPosition 函式
適用于: Windows |Windows Server
JetGetRecordPosition 函式
JetGetRecordPosition函式會以JET_RECPOS結構的形式,傳回目前索引中目前記錄的小數位置。 此結構描述目前記錄之前的近似索引項目目數目和索引中大約總專案數的分數位置。
JET_ERR JET_API JetGetRecordPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_RECPOS* precpos,
__in unsigned long cbRecpos
);
參數
sesid
要用於這個呼叫的會話。
tableid
要用於這個呼叫的資料指標。
precpos
要用來取得目前記錄在目前索引中位置的分數描述。
cbRecpos
配置於 precpos的記憶體大小。
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errClientRequestToStopJetService |
作業無法完成,因為與會話相關聯的實例上的所有活動都因為 對 JetStopService的呼叫而停止。 |
JET_errInstanceUnavailable |
此作業無法完成,因為與會話相關聯的實例發生嚴重錯誤。 必須撤銷所有資料的存取權,才能保護該資料的完整性。 Windows 2000: Windows 2000 作業系統不會傳回此錯誤。 |
JET_errInvalidParameter |
precpos上已配置的記憶體大小不足。 |
JET_errNoCurrentRecord |
游標目前不在記錄上,而且無法傳回位置。 |
JET_errRestoreInProgress |
無法完成作業,因為與會話相關聯的實例上正在進行還原作業。 |
JET_errSessionSharingViolation |
同一個會話不能同時用於一個以上的執行緒。 Windows 2000: Windows 2000 作業系統不會傳回此錯誤。 |
JET_errTermInProgress |
作業無法完成,因為與會話相關聯的實例正在關閉。 |
成功時,會在 precpos-centriesLT > 中傳回索引中目前記錄之前的大約索引項目目數目。 1 會以 precpos-centriesInRange > 傳回。 索引中的大約專案數目會在 precpos-centriesTotal > 中傳回。
失敗時,不會對配置於 precpos的記憶體進行任何變更。
備註
當資料表上持續發生更新時,此作業會傳回不同的資料。 值中的變更不一定符合根據更新知識的預期,因為這些值是根據索引的實體屬性來近似值。 交易式隔離不適用於 JetGetRecordPosition 中的位置,因為這些值取決於未隔離交易之索引的實體屬性。
JET_RECPOS 不應該用來描述資料表內的記錄,或重新置放接近現有記錄的記錄。 相反地,應該擷取現有記錄的書簽,然後用來重新置放相同的記錄。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RECPOS
JET_SETINFO
JetGotoPosition
JetStopService