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_DBINFOUPGRADE。 JET_DBINFOUPGRADE結構會填入與指定資料庫相關的資訊。

JET_DbInfoMisc

pvResult 會解譯為 JET_DBINFOMISC。 JET_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時,JetGetDatabaseFileInfo和JetGetDatabaseInfo會傳回此錯誤。

如果此函式成功,則會在輸出緩衝區中傳回要求的資料。

如果此函式失敗,輸出緩衝區將會處於未定義的狀態。

規格需求

用戶端

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