JetGetObjectInfo 函式
適用于: Windows |Windows Server
JetGetObjectInfo 函式
JetGetObjectInfo函式會擷取資料庫物件的相關資訊。 目前僅支援資料表。 JetGetTableInfo 可用來擷取 比 JetGetObjectInfo更多的資訊。
JET_ERR JET_API JetGetObjectInfo(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_OBJTYP objtyp,
__in_opt const tchar* szContainerName,
__in_opt const tchar* szObjectName,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
參數
sesid
要使用的資料庫會話內容。
dbid
從中擷取資訊的資料庫。
objtyp
包含要擷取之資訊的物件。 目前僅支援JET_objtypNil和JET_objtypTable,這兩者的行為都相同。 只會擷取資料表。
szContainerName
此參數保留供日後使用,並傳遞 Null。 要擷取資訊的物件類型名稱。
szObjectName
物件的名稱,其中包含要擷取的資訊。 當 InfoLevel 使用JET_ObjInfoList或JET_ObjInfoListNoStats選項來擷取所有物件的清單時,此值應該是 Null 或空字串。
目前僅支援資料表名稱。
pvResult
接收指定資訊的緩衝區指標。
緩衝區的大小會以位元組為單位傳入 cbMax。 失敗時, pvResult 的內容未定義。
儲存在 pvResult 中的資訊取決於 InfoLevel。
cbMax
在 pvResult中傳遞之緩衝區的大小,以位元組為單位。
InfoLevel
指定要針對指定物件擷取的資訊類型。 這會影響 pvResult 的解譯方式。
您可以針對此參數設定下列選項。
值 |
意義 |
---|---|
JET_ObjInfo |
pvResult 會解譯為 JET_OBJECTINFO 結構。 JET_OBJECTINFO結構會填入與szObjectName中命名之物件相關的資訊。 如果呼叫端不想要知道物件的記錄和頁數,請考慮使用JET_ObjInfoNoStats資訊層級,因為不包含統計資料,所以可能會更快。 |
JET_ObjInfoList |
pvResult 會解譯為 JET_OBJECTLIST 結構。 擷取所有物件的相關資訊。 將會建立臨時表,而周遊臨時表所需的資訊會在 JET_OBJECTLIST 結構中說明。 如需詳細資訊,請參閱 JET_OBJECTLIST。 如果呼叫端不想要知道物件的記錄和頁數,請考慮使用JET_ObjInfoListNoStats,這可能會更快。 |
JET_ObjInfoListACM |
已被取代且目前不支援。 |
JET_ObjInfoListNoStats |
pvResult 會解譯為 JET_OBJECTLIST 結構。 擷取所有物件的相關資訊。 將會建立臨時表,而周遊臨時表所需的資訊會在 JET_OBJECTLIST 結構中說明。 如需詳細資訊,請參閱 JET_OBJECTLIST。 JET_ObjInfoListNoStats與JET_ObjInfoList相同,不同之處在于不會更新報告 columnidcRecord () 和 columnidcPage (columnidcPage) 記錄數目的資料行。 |
JET_ObjInfoMax |
pvResult 會解譯為 JET_OBJECTINFO。 物件的大小上限是分頁。 目前只會傳回資料表。 |
JET_ObjInfoNoStats |
pvResult 會解譯為 JET_OBJECTINFO。 只會擷取 szObjectName 中所指定物件的相關資訊。 JET_OBJECTINFO結構會填入與szObjectName中所命名物件相關的資訊。 JET_ObjInfoNoStats與JET_ObjInfo相同,不同之處在于報告記錄和頁面數目的欄位會設定為零。 |
JET_ObjInfoRulesLoaded |
已被取代且目前不支援。 |
JET_ObjInfoSysTabCursor |
已被取代且目前不支援。 |
JET_ObjInfoSysTabReadOnly |
已被取代且目前不支援。 |
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errBufferTooSmall |
cbMax中提供的緩衝區大小太小,無法保存所需的資訊。 |
JET_errInvalidName |
szObjectName或szContainerName中指定了不正確名稱。 |
JET_errInvalidParameter |
已指定不正確的參數。 可能會將不正確的層級傳入 InfoLevel。 |
備註
如果 JetGetObjectInfo 成功建立臨時表 (例如,JET_ObjInfoList或JET_ObjInfoNoStats) ,呼叫端會負責使用 JetCloseTable關閉臨時表。
JetGetObjectInfo 目前僅支援擷取資料表的相關資訊。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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 |
實作為 JetGetObjectInfoW (Unicode) 和 JetGetObjectInfoA (ANSI) 。 |
另請參閱
JET_ERR
JET_GRBIT
JET_OBJTYP
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetCloseTable
JetGetTableInfo