JetSetSystemParameter 函式
適用于:Windows |Windows伺服器
JetSetSystemParameter 函式
JetSetSystemParameter函式可用來設定資料庫引擎的許多組態設定。
JET_ERR JET_API JetSetSystemParameter(
__in_out_opt JET_INSTANCE* pinstance,
__in JET_SESID sesid,
__in unsigned long paramid,
__in JET_API_PTR lParam,
__in_opt JET_PCSTR szParam
);
參數
pinstance
指定要用於這個呼叫的實例。
Windows 2000:若為 Windows 2000,則會忽略此參數,且一律為Null。
Windows XP:對於Windows XP 和更新版本,此參數會稍微多載。 如果引擎在舊版模式中運作, (Windows 2000 相容性模式) 只支援一個實例,則此參數可能是Null,或可能包含JetInit傳回的實際實例。 不論是哪一種情況,所有系統參數設定都會從該一個實例讀取。 如果引擎是以多重實例模式運作,則此參數可能是 Null ,或是使用 JetInit 或 JetCreateIndex建立之實例的指標。 當此參數為 Null 時,就會讀取全域系統參數設定 (或預設) 。 當此參數是實例時,就會讀取該實例的系統參數設定。
雖然這在技術上是 out 參數,但此 API 永遠不會修改所提供緩衝區的內容。
sesid
指定要用於這個呼叫的會話。
指定時,會忽略指定的實例,並使用與會話相關聯的實例。
paramid
將設定之系統參數的識別碼。 如需系統參數及其屬性的完整清單,請參閱 系統參數 。
lParam
如果選取的系統參數屬於整數類型,請提供要為選取的系統參數設定的值。
szParam
如果選取的系統參數為字串類型,請提供所選取系統參數的值。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱可延伸儲存體引擎錯誤和錯誤處理參數。
傳回碼 |
描述 |
---|---|
JET_errSuccess |
作業已成功完成。 Windows Vista:在 Windows Vista 和更新版本上,可以傳回成功,而不會變更系統參數的值。 如需詳細資訊,請參閱 Meta Parameters 主題中的JET_paramEnableAdvanced系統參數。 |
JET_errAlreadyInitialized |
實例已使用 JetInit 的呼叫進行初始化,因此無法執行此作業。 當嘗試在其值變更後設定系統參數時, JetSetSystemParameter 可能會發生這種情況,而不會影響資料庫引擎的狀態。 |
JET_errClientRequestToStopJetService |
因為與會話相關聯的實例上的所有活動因為對 JetStopService的呼叫而停止,所以無法完成作業。 |
JET_errIndexTuplesInvalidLimits |
指定的 Tuple 索引參數不合法。 只有在將JET_paramIndexTuplesLengthMin、JET_paramIndexTuplesLengthMax或JET_paramIndexTuplesToIndexMax設定為不合法的值時,JetSetSystemParameter才會傳回此錯誤。 Windows XP 和 Windows Server 2003:這只能在 Windows XP 和 Windows Server 2003 上發生。 |
JET_errInitInProgress |
無法完成作業,因為正在初始化與會話相關聯的實例。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 Windows XP:此錯誤只會由Windows XP 和更新版本傳回。 |
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數值結合時沒有意義的值。 當下列情況發生于 JetSetSystemParameter 時,可能會發生此問題:
|
JET_errInvalidPath |
指定的檔案系統路徑無效。 只有在設定代表檔案系統路徑的系統參數時, JetSetSystemParameter 才會傳回此錯誤。 例如, JET_paramSystemPath 可能會傳回此錯誤。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
因為與會話相關聯的實例上正在進行還原作業,所以無法完成作業。 |
JET_errTermInProgress |
因為與會話相關聯的實例正在關閉,所以無法完成作業。 |
JET_errInvalidSesid |
會話控制碼無效,或參考已關閉的會話。 在所有情況下都不會傳回此錯誤。 控制碼只會以最佳方式進行驗證。 |
JET_errInvalidInstance |
實例控制碼無效,或參考已關機的實例。 在所有情況下都不會傳回此錯誤。 控制碼只會以最佳方式進行驗證。 Windows Vista:此錯誤只會由Windows Vista 和更新版本傳回。 |
成功時,系統參數的設定將會設定為提供的 值。
失敗時,系統參數的設定會保持不變。
備註
JetSetSystemParameter 會執行驗證每個系統參數所選設定的不佳工作。 請務必小心不要依賴此驗證來強制執行良好的設定。 請密切注意每個系統參數的描述,並遵循這些指導方針以取得良好的系統參數設定。
有一組系統參數應該一律設定為保證資料庫引擎如預期般運作。 具體而言,任何影響資料庫引擎所使用檔案實體配置的系統參數都應該一律設定。 如需詳細資訊,請參閱 系統參數。
每個系統參數都有預設值。 這些預設值已隨著時間演進,而且相當任意。 強烈建議應用程式評估所有預設值,以確保其適當。 如果它們不適當,則應用程式應該加以設定。 這很重要,因為其中許多參數可能會大幅影響資料庫引擎的可靠性、效能和資源使用率。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
Unicode |
實作為 JetSetSystemParameterW (Unicode) 和 JetSetSystemParameterA (ANSI) 。 |
另請參閱
JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetGetSystemParameter
JetInit
系統參數