共用方式為


JetGetDatabaseInfo 函式

適用于: Windows |Windows Server

JetGetDatabaseInfo 函式

JetGetDatabaseInfo函式會擷取資料庫的各種資訊類型。 當使用 JetGetDatabaseInfo) 附加或線上 (,或是使用 JetGetDatabaseFileInfo) 離線 (資料庫或資料庫引擎時,即可呼叫此 API。

    JET_ERR JET_API JetGetDatabaseInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

參數

sesid

要用於這個呼叫的會話。

dbid

要從中擷取資訊的資料庫 JET_DBID

pvResult

將接收指定資訊的緩衝區指標。 緩衝區的大小會以位元組為單位傳入 cbMax

失敗時, pvResult 的內容未定義。

儲存在 pvResult中的資訊取決於InfoLevel

cbMax

pvResult中傳遞之緩衝區的大小,以位元組為單位。

InfoLevel

InfoLevel 會指定應該擷取有關指定資料庫的資訊類型。 這會影響 pvResult 的解譯方式。 某些 InfoLevel 僅適用于離線 (JetGetDatabaseFileInfo) 或線上 (JetGetDatabaseInfo) 版本的 API。

如果提供的 pvResult 緩衝區太小,則會根據 InfoLevel傳回JET_errInvalidBufferSize或JET_errBufferTooSmall。

意義

JET_DbInfoCollate

尚不支援並傳回預設值。 請勿使用。

JET_DbInfoConnect

這些 InfoLevel 已被 取代,目前不支援。 請勿使用。

JET_DbInfoCountry

尚不支援並傳回預設值。 請勿使用。

JET_DbInfoCp

尚不支援並傳回預設值。 請勿使用。

JET_DbInfoFilename

pvResult 會解譯為字串緩衝區, (char *) 。 建議使用MAX_PATH緩衝區,但並非必要。 如果緩衝區不夠長,則會傳回JET_errBufferTooSmall。 字串會填入此 DBID 資料庫的路徑。

JET_DbInfoFilesize

pvResult 會解譯為 DWORD (4 個位元組) 。 傳回頁面中的資料庫大小。

JET_DbInfoIsam

這些 InfoLevel 已被 取代,目前不支援。 請勿使用。

JET_DbInfoLCID

(Windows XP 和更新版本) 這個 InfoLevel 最初指定為:JET_DbInfoLangid (Windows 2000)

pvResult 將會解譯為 long。 這會 (LCID 傳回與這個資料庫相關聯的地區設定識別碼) 。

JET_DbInfoMisc

pvResult 會解譯為 JET_DBINFOMISCJET_DBINFOMISC結構會填入與指定之資料庫相關的資訊。

JET_DbInfoOptions

pvResult 會解譯為 JET_GRBIT (DWORD) 。 這會傳回資料庫是否以獨佔模式開啟。 如果資料庫處於獨佔模式JET_bitDbExclusive將會在提供的 JET_GRBIT 中設定,否則會設定零。 請注意,不會傳回 JetAttachDatabaseJetOpenDatabase的其他資料庫grbit選項。

JET_DbInfoPageSize

僅適用于 Windows XP 和更新版本。 pvResult 將會解譯為不帶正負號的 long。 這會以位元組為單位傳回資料庫的分頁大小。

JET_DbInfoSpaceAvailable

pvResult 會解譯為 DWORD。 這會傳回頁面中資料庫的可用空間。

JET_DbInfoSpaceOwned

pvResult 會解譯為 DWORD。 這會在頁面中傳回資料庫擁有的空間。

JET_DbInfoTransactions

pvResult 將會解譯為 long。 這會傳回一個大於交易可以巢狀化的最大層級。 如果 JetBeginTransaction 是以巢狀方式呼叫 (,也就是說,在相同的會話上,沒有認可或回復) 這個值多次,則最後一次呼叫JET_errTransTooDeep會從 JetBeginTransaction傳回。 請注意 Windows 2000、Windows XP 和 Windows Server 2003 中的值為 7。

JET_DbInfoVersion

pvResult 將會解譯為 long。 這會傳回資料庫引擎的原生主要版本。 此值為 Windows 2000、Windows XP 和 Windows Server 2003 0x620。

傳回值

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

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errBufferTooSmall

cbMax中提供的緩衝區大小太小, (或不正確) 來保存所需的資訊。

JET_errFeatureNotAvailable

要求的 InfoLevel 已JET_DbInfoIsam。 不支援此連結方式。

JET_errInvalidBufferSize

cbMax中提供的緩衝區大小太小, (或不正確) 來保存所需的資訊。

JET_errInvalidParameter

提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。 當提供的JET_DBID不是附加) 資料庫的有效 (時,JetGetDatabaseInfo會傳回此錯誤。 當該版本的函式不支援InfoLevel時,JetGetDatabaseFileInfoJetGetDatabaseInfo會傳回此錯誤。

成功時,要求的資料將會在輸出緩衝區中傳回。

失敗時,輸出緩衝區將會處於未定義的狀態。

規格需求

需求

用戶端

需要 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

實作為 JetGetDatabaseInfoW (Unicode) 和 JetGetDatabaseInfoA (ANSI) 。

另請參閱

JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo