共用方式為


JetGetColumnInfo 函式

適用于: Windows |Windows Server

JetGetColumnInfo 函式

JetGetColumnInfo函式會擷取資料行的相關資訊。

    JET_ERR JET_API JetGetColumnInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in          const tchar* szColumnName,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

參數

sesid

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

dbid

識別包含從中擷取資訊之資料行的資料表,以及 szTableName

szTableName

識別包含從中擷取資訊之資料行的 資料表,以及 dbid

szColumnName

擷取資訊的資料行名稱。

pvResult

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

cbMax

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

InfoLevel

要針對 szColumnName所指定之資料行擷取的資訊類型。 儲存在 pvResult中的資料格式取決於此參數。 如需臨時表的架構,請參閱 JET_COLUMNLIST

這些 InfoLevels 的區別方式如下:

  • JET_ColInfoListSortColumnid會依 columnid排序臨時表。

  • JET_ColInfoListCompact會壓縮輸出。 如需精簡輸出的詳細資訊,請參閱 JET_COLUMNLIST

下列選項可用於搭配此參數使用。

意義

JET_ColInfo

JET_ColInfo和JET_ColInfoByColid兩者都會擷取相同的資訊。 pvResult 會解譯為 JET_COLUMNDEF,並適當地填入 JET_COLUMNDEF 結構的欄位。

JET_ColInfoBase

pvResult 會解譯為 JET_COLUMNBASE 結構。 這類似于 JET_COLUMNDEF 結構。 如果此函式成功,結構就會填入適當的值。 如果此函式失敗,結構會包含未定義的資料。

JET_ColInfoByColid

如同JET_ColInfo, pvResult 會解譯為 JET_COLUMNDEF,但這個 InfoLevel 表示要求的資料行 (szColumName) 不是字串資料行名稱,而是 JET_COLUMNID的指標。

JET_ColInfoList

pvResult 會解譯為 JET_COLUMNLIST 結構。 如果此函式成功,結構就會填入適當的值。 臨時表隨即開啟,並由JET_COLUMNLIST結構的tableid成員識別。 資料表必須使用 JetCloseTable關閉。 如果此函式失敗,結構會包含未定義的資料。

JET_ColInfoListCompact

與JET_ColInfoList相同。

JET_ColInfoListSortColumnid

與JET_ColInfoList相同;不過,產生的資料表會依 columnid 排序,而不是資料行名稱。

JET_ColInfoSysTabCursor

JET_ColInfoSysTabCursor已被取代,而且使用它將會傳回JET_errFeatureNotAvailable。

JET_ColInfoBaseByColId

如同JET_ColInfoBase, pvResult 會解譯為 JET_COLUMNBASE,但這個 InfoLevel 表示要求的資料行 (szColumName) 不是字串資料行名稱,而是 JET_COLUMNID的指標。

Windows Vista: 此值會在 Windows Vista 中引進。

JET_ColInfoGrbitNonDerivedColumnsOnly

只有在資料表衍生自範本) 時,才會傳回非衍生資料行 (。

當基底 InfoLevel JET_ColInfoList時,這個值可以邏輯方式或放在 InfoLevel 中。

Windows Vista: 此值是引進 Windows Vista。

JET_ColInfoGrbitMinimalInfo

只傳回每個資料行的資料行名稱和 columnid。

當基底 InfoLevel JET_ColInfoList時,這個值可以邏輯方式或放在 InfoLevel 中。

Windows Vista: 此值會在 Windows Vista 中引進。

JET_ColInfoGrbitSortByColumnid

依 columnid 排序傳回的資料行清單 (預設值是依資料行名稱排序清單) 。

當基底 InfoLevel JET_ColInfoList時,這個值可以邏輯方式或放在 InfoLevel 中。

Windows Vista: 此值會在 Windows Vista 中引進。

傳回值

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

傳回碼

Description

JET_errSuccess

作業已成功完成。

JET_errColumnNotFound

資料表中找不到名為 szColumnName 的資料 行。

JET_errFeatureNotAvailable

指定了不正確的 InfoLevel

JET_errInvalidName

如果:

  • 已指定 szTableName 的錯誤名稱。

  • 已指定 szColumnName 的錯誤名稱。

JET_errInvalidParameter

如果:

  • 指定了不正確的 InfoLevel

  • 已傳入 Null szTableName

  • 緩衝區太小。

備註

JetGetTableColumnInfoJetGetColumnInfo 都會擷取資料行的相關資訊。 它們之間的差異在於如何識別資料表:

  • JetGetTableColumnInfo 會依 tableid識別資料表。

  • JetGetColumnInfo 會依 dbidszTableName 組合來識別資料表。

使用JET_ColInfoList、JET_ColInfoListSortColumnid或JET_ColInfoListCompact擷取資料時,將會開啟臨時表。 臨時表包含資料, 而JET_COLUMNLIST 結構包含足夠的資訊來周遊臨時表。 臨時表必須使用 JetCloseTable關閉。

規格需求

需求

用戶端

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

實作為 JetGetColumnInfoW (Unicode) 和 JetGetColumnInfoA (ANSI) 。

另請參閱

錯誤處理參數
可延伸儲存引擎錯誤
JET_COLUMNBASE
JET_COLUMNDEF
JET_COLUMNID
JET_COLUMNLIST
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetGetTableColumnInfo