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_DBINFOMISC。 JET_DBINFOMISC結構會填入與指定之資料庫相關的資訊。 |
JET_DbInfoOptions |
pvResult 會解譯為 JET_GRBIT (DWORD) 。 這會傳回資料庫是否以獨佔模式開啟。 如果資料庫處於獨佔模式JET_bitDbExclusive將會在提供的 JET_GRBIT 中設定,否則會設定零。 請注意,不會傳回 JetAttachDatabase和JetOpenDatabase的其他資料庫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時,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 |
實作為 JetGetDatabaseInfoW (Unicode) 和 JetGetDatabaseInfoA (ANSI) 。 |
另請參閱
JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo