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 ,或是使用 JetInitJetCreateInstance建立之實例的指標。 當此參數為 Null 時,會讀取全域系統參數設定 (或預設) 。 當此參數是實例時,就會讀取該實例的系統參數設定。

sesid

要用於這個呼叫的會話。

指定時,會忽略指定的實例,並使用與會話相關聯的實例。

paramid

將讀取之系統參數的識別碼。

如需系統參數及其屬性的完整清單,請參閱 系統 參數。

plParam

如果系統參數屬於整數類型,則為接收所選取系統參數值的輸出緩衝區。

szParam

如果系統參數屬於字串類型,則為接收所選取系統參數值的輸出緩衝區。

cbMax

字串輸出緩衝區的大小上限,以位元組為單位。

傳回值

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

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errClientRequestToStopJetService

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

JET_errInitInProgress

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

JET_errInstanceUnavailable

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

JET_errInvalidParameter

提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。

當下列情況時 ,JetGetSystemParameter 可能會發生這種情況:

  • 指定的系統參數識別碼無效或不受支援。

  • 指定的系統參數需要提供整數輸出緩衝區,且輸出緩衝區指標為 Null

  • 指定的系統參數需要提供字串輸出緩衝區,且輸出緩衝區指標為 Null

    Windows Vista: 這只能在 Windows Vista 和更新版本上發生。

  • 指定的系統參數需要提供字串輸出緩衝區,而且該輸出緩衝區的大小太小而無法接受 Null 終止的字串。

    Windows Vista: 這只能在 Windows Vista 和更新版本上發生。

  • 無法讀取指定的系統參數,因為它是唯寫的。

  • 指定的系統參數只是全域參數,而且嘗試讀取該系統參數的實例特定值。 這只能在 Windows XP 和更新版本上發生。

  • 指定的系統參數僅限每個實例,而且嘗試讀取該系統參數的全域值。 這只能在 Windows XP 和更新版本上發生。

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
系統參數