共用方式為


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)。

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 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤錯誤處理參數

回傳碼

說明

JET_errSuccess

作業已順利完成。

JET_errBufferTooSmall

cbMax 中提供的緩衝區大小太小,無法保存所需的資訊。

JET_errInvalidName

szObjectNameszContainerName 中指定了無效的名稱。

JET_errInvalidParameter

已指定錯誤的參數。 可能會將不正確的層級傳遞至 InfoLevel

備註

如果 JetGetObjectInfo 成功建立臨時表(例如,JET_ObjInfoList或JET_ObjInfoNoStats),呼叫者會負責使用 JetCloseTable 關閉臨時表。

JetGetObjectInfo 目前僅支援擷取數據表的相關信息。

需求

要求 價值

用戶端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

伺服器

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