JetGetSystemParameter 函式
適用于: Windows |Windows Server
JetGetSystemParameter 函式
JetGetSystemParameter函式會讀取資料庫引擎的許多組態設定。
JET_ERR JET_API JetGetSystemParameter(
__in JET_INSTANCE instance,
__in JET_SESID sesid,
__in unsigned long paramid,
__in_out_opt JET_API_PTR* plParam,
__out_opt JET_PSTR szParam,
__in unsigned long cbMax
);
參數
instance
要用於這個呼叫的 實例。
若為 Windows 2000,則會忽略此參數,且一律為 Null。
對於 Windows XP 和更新版本,此參數會稍微多載。 如果引擎是以舊版模式運作, (Windows 2000 相容性模式) 只支援一個實例,則此參數可能是 Null ,或可能包含 JetInit傳回的實際實例。 不論是哪一種情況,都會從該實例讀取所有系統參數設定。 如果引擎在多重實例模式中運作,此參數可能是 Null ,或是使用 JetInit 或 JetCreateInstance建立之實例的指標。 當此參數為 Null 時,會讀取全域系統參數設定 (或預設) 。 當此參數是實例時,就會讀取該實例的系統參數設定。
sesid
要用於這個呼叫的會話。
指定時,會忽略指定的實例,並使用與會話相關聯的實例。
paramid
將讀取之系統參數的識別碼。
如需系統參數及其屬性的完整清單,請參閱 系統 參數。
plParam
如果系統參數屬於整數類型,則為接收所選取系統參數值的輸出緩衝區。
szParam
如果系統參數屬於字串類型,則為接收所選取系統參數值的輸出緩衝區。
cbMax
字串輸出緩衝區的大小上限,以位元組為單位。
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
描述 |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errClientRequestToStopJetService |
無法完成作業,因為與會話相關聯之實例上的所有活動因 JetStopService呼叫而停止。 |
JET_errInitInProgress |
無法完成作業,因為與會話相關聯的實例正在初始化。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。 當下列情況時 ,JetGetSystemParameter 可能會發生這種情況:
|
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
無法完成作業,因為與會話相關聯的實例上正在進行還原作業。 |
JET_errTermInProgress |
無法完成作業,因為與會話相關聯的實例正在關閉。 |
JET_errInvalidSesid |
會話控制碼無效或參考已關閉的會話。 在所有情況下都不會傳回此錯誤。 控制碼只會以最佳方式進行驗證。 |
JET_errInvalidInstance |
實例控制碼無效,或參考已關機的實例。 在所有情況下都不會傳回此錯誤。 控制碼只會以最佳方式進行驗證。 Windows Vista: 此錯誤只會由 Windows Vista 和更新版本傳回。 |
JET_wrnBufferTruncated |
作業已順利完成,但輸出緩衝區太小而無法接收整個系統參數設定。 輸出緩衝區已填入符合多少系統參數設定。 如果輸出緩衝區長度至少為一個字元,則該輸出緩衝區中的字串將會以 Null 終止。 注意 所有版本都不會傳回此錯誤。 如需詳細資訊,請參閱一節。 |
JET_errBufferTooSmall |
作業失敗,因為輸出緩衝區太小而無法接收整個系統參數設定。 注意 在某些情況下,不會傳回此錯誤以保留應用程式相容性。 如需詳細資訊,請參閱一節。 Windows Vista: 此錯誤只會由 Windows Vista 和更新版本傳回。 |
成功時,適用于所要求系統參數的輸出緩衝區將會設定為該系統參數的值。
失敗時,輸出緩衝區的狀態將會未定義。
備註
此 API 中存在所有版本中有一個重要問題。 如果要求具有字串值的系統參數,而且輸出緩衝區太小而無法接收整個系統參數設定,則不會傳回JET_wrnBufferTruncated。 JET_errSuccess會改為傳回。 如果傳回字串的長度等於輸出緩衝區的大小小於 Null 結束字元,則呼叫端應該回應,就像傳回JET_wrnBufferTruncated一樣。 如果指定了零大小的字串輸出緩衝區,則呼叫端應該回應,就像傳回JET_errInvalidParameter一樣。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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 |
實作為 JetGetSystemParameterW (Unicode) 和 JetGetSystemParameterA (ANSI) 。 |
另請參閱
JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetInit
JetSetSystemParameter
JetStopService
系統參數