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 |
如果:
|
JET_errInvalidParameter |
如果:
|
備註
JetGetTableColumnInfo 和 JetGetColumnInfo 都會擷取資料行的相關資訊。 它們之間的差異在於如何識別資料表:
JetGetTableColumnInfo 會依 tableid識別資料表。
JetGetColumnInfo 會依 dbid 和 szTableName 組合來識別資料表。
使用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