JetSetTableSequential 函式
適用于:Windows |Windows伺服器
JetSetTableSequential 函式
JetSetTableSequential函式會通知資料庫引擎應用程式正在掃描包含指定資料指標的整個目前索引。 因此,用來存取索引資料的方法將會經過微調,讓此案例越快越好。
Windows XP:JetSetTableSequential是在 Windows XP 中引進。
JET_ERR JET_API JetSetTableSequential(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit
);
參數
sesid
要用於這個呼叫的會話。
tableid
要用於這個呼叫的資料指標。
grbit
指定下列選項之零或多個位群組。
值 |
意義 |
---|---|
JET_bitPrereadForward |
此選項用來以正向編制索引。 Windows 7:JET_bitPrereadForward于 Windows 7 引進。 |
JET_bitPrereadBackward |
此選項用來以向後方向編制索引。 Windows 7:JET_bitPrereadBackward會在 Windows 7 引進。 |
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱可延伸儲存體引擎錯誤和錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errClientRequestToStopJetService |
作業無法完成,因為呼叫 JetStopService而停止與會話相關聯的實例上的所有活動。 |
JET_errInstanceUnavailable |
作業無法完成,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。 Windows XP:Windows XP中引進此傳回值。 |
JET_errNotInitialized |
作業無法完成,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
作業無法完成,因為與會話相關聯的實例上正在進行還原作業。 |
JET_errTermInProgress |
作業無法完成,因為與會話相關聯的實例正在關閉。 |
如果此函式成功,資料指標的目前索引會針對整個索引的循序掃描進行優化。 不會變更資料庫狀態。
如果此函式失敗,則不會變更資料指標的組態。 不會變更資料庫狀態。
備註
如果應用程式需要有效率地掃描索引的已知子集,每當使用 JetSetIndexRange建立索引範圍時,也會執行類似的優化。 這項優化僅適用于 Windows XP 和更新版本。
如果應用程式需要有效率地掃描索引的未知子集,則不應該採取任何動作。 引擎可以自動偵測掃描行為,並事先擷取資料。 不過,此行為不如積極。
此優化會讓掃描主要索引更有效率,而且只會掃描次要索引中的索引項目目資料。 它不會在擷取記錄資料有效率時掃描次要索引。 這是因為引擎不會在記錄資料上事先執行讀取。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另請參閱
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetSetIndexRange
JetStopService