JetGetDatabaseFileInfo 函式

適用于: Windows |Windows Server

JetGetDatabaseFileInfo 函式

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

    JET_ERR JET_API JetGetDatabaseFileInfo(
      __in          const tchar* szDatabaseName,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

參數

szDatabaseName

要從中擷取資訊的資料庫路徑。

pvResult

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

如果此函式失敗,則會未定義 pvResult 的內容。

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

cbMax

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

InfoLevel

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

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

意義

JET_DbInfoFilesize

pvResult 會解譯為 QWORD (8 個位元組) 。 以位元組為單位傳回資料庫的大小。

JET_DbInfoUpgrade

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

JET_DbInfoMisc

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

JET_DbInfoDBInUse

pvResult 會解譯為 BOOL (4 個位元組) 。 這會傳回資料庫引擎目前是否有任何開啟或附加的資料庫。

Windowsxp: 此值是在 Windows XP 中引進。

JET_DbInfoPageSize

pvResult 將會解譯為不帶正負號的 long。 這會以位元組為單位傳回資料庫的分頁大小。

Windowsxp: 此值是在 Windows XP 中引進。

JET_DbInfoCp

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

JET_DbInfoCountry

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

JET_DbInfoCollate

與JET_DbInfoCp相同。

JET_DbInfoIsam

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

JET_DbInfoConnect

與JET_DbInfoIsam相同。

JET_DbInfoFileType

Windows Vista: 這個 InfoLevel 值是在 Windows Vista 中引進。

pvResult 會被視為 DWORD 的指標。 傳回列舉值,指出引擎將這個視為哪一種檔案。 下表列出檔案類型。 如需這些類型檔案及其對引擎使用方式的詳細資訊,請參閱 可延伸儲存引擎檔案

意義

JET_filetypeUnknown

檔案的類型未知,或不是 ESE 檔案類型。

JET_filetypeDatabase

檔案是資料庫檔案。

JET_filetypeLog

檔案是交易記錄檔。

JET_filetypeCheckpoint

檔案是檢查點檔案。

JET_filetypeTempDatabase

檔案是暫存資料庫檔案。

傳回值

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

傳回碼

Description

JET_errSuccess

作業已成功完成。

JET_errFeatureNotAvailable

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

JET_errBufferTooSmall

cbMax中提供的緩衝區對於所需的資訊而言太小。

JET_errInvalidBufferSize

cbMax中提供的緩衝區不是所需資訊的正確大小。

JET_errInvalidParameter

提供的其中一個參數包含非預期的值,或數個參數值的組合會產生非預期的結果。 當提供的 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

實作為 JetGetDatabaseFileInfoW (Unicode) 和 JetGetDatabaseFileInfoA (ANSI) 。

另請參閱

JET_ERR
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseInfo