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 的陣列:
|
JET_TblInfoSpaceAvailable |
pvResult 會解譯為 ULONG。 ULONG是資料表中可用的頁數、索引和長值樹狀結構的總和。 |
JET_TblInfoSpaceOwned |
pvResult 會解譯為 ULONG。 ULONG是資料表所擁有的頁數總和, (包括其索引,以及長值樹狀結構,以及該處的任何可用頁面) 。 |
JET_TblInfoSpaceUsage |
API 的行為取決於傳遞至 API 的緩衝區大小。 兩 個 cbMax 值至少必須 ( 2 * sizeof ( 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) 。
資料表統計資料包括記錄數目,以及叢集索引 (中的頁數,也就是包含記錄資料的索引) 。 使用 JetGetIndexInfo 或 JetGetTableIndexInfo個別存取索引統計資料。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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