共用方式為


JetGetTableInfo 函式

適用于: Windows |Windows Server

JetGetTableInfo 函式

JetGetTableInfo函式會擷取資料庫中資料表的各種資訊片段。

    JET_ERR JET_API JetGetTableInfo(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

參數

sesid

要用於 API 呼叫的資料庫會話內容。

tableid

資訊所套用的資料表。

pvResult

將接收資訊的緩衝區指標。 緩衝區的類型取決於 InfoLevel。 呼叫端必須負責適當地對齊緩衝區。

cbMax

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

InfoLevel

要針對 tableid所指定之資料表擷取的資訊類型。 儲存在 pvResult中的資料格式取決於InfoLevel

您可以為此參數設定下列選項:

意義

JET_TblInfo

pvResult 會解譯為 JET_OBJECTINFO 結構。 如果方法成功, 則JET_OBJECTINFO 結構會填入適當的資料。 如果失敗,則不會定義內容。

JET_TblInfoDbid

pvResult 會被視為兩個 JET_DBID 物件的陣列。 擁有資料表之資料庫的資料庫識別碼會儲存在此陣列中兩次。

JET_TblInfoDumpTable

JET_TblInfoDumpTable已被取代。 API 會傳回JET_errFeatureNotAvailable。

JET_TblInfoName

JET_TblInfoName擷取資料表的名稱,並將其儲存在 pvResult中。 如果緩衝區太小,則行為未定義。

JET_TblInfoMostMany

JET_TblInfoMostMany擷取資料表的名稱,並將其儲存在 pvResult中。 如果緩衝區太小,則行為未定義。

JET_TblInfoOLC

JET_TblInfoOLC已被取代。 API 會傳回JET_errFeatureNotAvailable。

JET_TblInfoRvt

JET_TblInfoRvt已被取代。 API 會傳回JET_errQueryNotSupported。

JET_TblInfoResetOLC

JET_TblInfoResetOLC已被取代。 API 會傳回JET_errFeatureNotAvailable。

JET_TblInfoSpaceAlloc

pvResult 會解譯為兩個 ULONG 的陣列:

  • 第一個 ULONG 是資料表中的頁數。

  • 第二 個 ULONG 是資料表頁面的目標密度。

JET_TblInfoSpaceAvailable

pvResult 會解譯為 ULONGULONG是資料表中可用的頁數、索引和長值樹狀結構的總和。

JET_TblInfoSpaceOwned

pvResult 會解譯為 ULONGULONG是資料表所擁有的頁數總和, (包括其索引,以及長值樹狀結構,以及該處的任何可用頁面) 。

JET_TblInfoSpaceUsage

API 的行為取決於傳遞至 API 的緩衝區大小。 兩 個 cbMax 值至少必須 ( 2 * sizeof ( ULONG ) ) 。

  • 如果 cbMax ( 2 * sizeof ( ULONG ) ) , pvResult 會解譯為兩個 ULONG 的陣列:

    • 第一個 ULONG 是資料表的擁有範圍數目。

    • 第二 個 ULONG 是資料表的可用範圍數目。

  • pvResult 會解譯為的陣列:

    • 第一個 ULONG 是資料表的擁有範圍數目。

    • 第二 個 ULONG 是資料表的可用範圍數目。

JET_TblInfoTemplateTableName

pvResult 會解譯為字串緩衝區。 緩衝區至少必須JET_cbNameMost + 1,包括終止 的 Null。 如果資料表是衍生資料表,則緩衝區會填入衍生資料表繼承其 DDL 的資料表名稱。 如果資料表不是衍生資料表,則緩衝區會是空字串。

傳回值

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

傳回碼

描述

JET_errSuccess

作業已成功完成。

JET_errBufferTooSmall

緩衝區太小。

JET_errFeatureNotAvailable

指定了已被取代 的 InfoLevel

JET_errInvalidBufferSize

緩衝區不是正確的大小。

JET_errInvalidOperation

傳入的資料表是臨時表,而且無法擷取臨時表所要求的 InfoLevel

JET_errObjectNotFound

傳入的資料表是臨時表,而且無法擷取臨時表所要求的 InfoLevel

JET_errQueryNotSupported

不支援 InfoLevel

JET_errTableInUse

資料表正由另一個資料庫作業使用。

JET_errTableLocked

資料表會由另一個資料庫作業鎖定。

JET_wrnTableInUseBySystem

系統正在使用資料表。 此警告為非嚴重。

備註

某些資訊對臨時表無效, (請參閱 JetOpenTempTable) 。

資料表統計資料包括記錄數目,以及叢集索引 (中的頁數,也就是包含記錄資料的索引) 。 使用 JetGetIndexInfoJetGetTableIndexInfo個別存取索引統計資料。

規格需求

需求

用戶端

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

實作為 JetGetTableInfoW (Unicode) 和 JetGetTableInfoA (ANSI) 。

另請參閱

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JetGetIndexInfo
JetGetObjectInfo
JetGetTableIndexInfo
JetOpenTempTable