共用方式為


SQLColAttribute

您可以使用 SQLColAttribute 來擷取已備妥或已執行 ODBC 語句之結果集資料行的屬性。 在備妥的 語句上呼叫 SQLColAttribute 會導致往返SQL Server。 SQL Server Native Client ODBC 驅動程式會接收結果集資料行資料做為語句執行的一部分,因此在 SQLExecuteSQLExecDirect完成之後呼叫 SQLColAttribute 並不牽涉到伺服器往返。

注意

ODBC 資料行識別碼屬性不適用於所有SQL Server結果集。

欄位識別碼 描述
SQL_COLUMN_TABLE_NAME 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。
SQL_DESC_BASE_COLUMN_NAME 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。
SQL_DESC_BASE_TABLE_NAME 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。
SQL_DESC_CATALOG_NAME 資料庫名稱。 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。
SQL_DESC_LABEL 可用於所有結果集上。 此值與 SQL_DESC_NAME 欄位的值相同。

只有在資料行為運算式的結果,而且運算式不包含標籤指派時,欄位的長度才為零。
SQL_DESC_NAME 可用於所有結果集上。 此值與 SQL_DESC_LABEL 欄位的值相同。

只有在資料行為運算式的結果,而且運算式不包含標籤指派時,欄位的長度才為零。
SQL_DESC_SCHEMA_NAME 擁有者名稱。 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。

只有在 SELECT 陳述式中針對資料行指定擁有者名稱時才適用。
SQL_DESC_TABLE_NAME 可用於擷取自產生伺服器資料指標之陳述式的結果集,或包含 FOR BROWSE 子句之已執行 SELECT 陳述式。
SQL_DESC_UNNAMED 除非資料行是運算式的結果,而且該運算式在執行時不包含標籤指派,否則為結果集中所有資料行的 SQL_NAMED。 當 SQL_DESC_UNNAMED 傳回 SQL_UNNAMED 時,資料行的所有 ODBC 資料行識別碼屬性都包含零長度字串。

SQL Server Native Client ODBC 驅動程式會使用 SET FMTONLY 語句,在針對備妥但未執行的語句呼叫時 SQLColAttribute 減少伺服器額外負荷。

針對大型實數值型別, SQLColAttribute 會傳回下列值:

欄位識別碼 變更的描述
SQL_DESC_DISPLAY_SIZE 這是從資料行顯示資料所需的最大字元數。 對於大數值類型資料行,傳回的值為 SQL_SS_LENGTH_UNLIMITED。
SQL_DESC_LENGTH 傳回結果集中資料行的實際長度。 對於大數值類型資料行,傳回的值為 SQL_SS_LENGTH_UNLIMITED。
SQL_DESC_OCTET_LENGTH 傳回大數值類型資料行的最大長度。 SQL_SS_LENGTH_UNLIMITED 用來表示無限制的大小。
SQL_DESC_PRECISION 對於大數值類型資料行,傳回 SQL_SS_LENGTH_UNLIMITED 值。
SQL_DESC_TYPE 對於大數值類型,傳回 SQL_VARCHAR, SQL_WVARCHAR 和 SQL_VARBINARY。
SQL_DESC_TYPE_NAME 對於大數值類型,傳回 "varchar"、"varbinary"、"nvarchar"。

對於所有版本,當已備妥的 SQL 陳述式批次產生多個結果集時,只有第一個結果集會報告資料行屬性。

下列資料行屬性是由 SQL Server Native Client ODBC 驅動程式所公開的延伸模組。 SQL Server Native Client ODBC 驅動程式會傳回NumericAttrPtr參數中的所有值。 除了 SQL_CA_SS_COMPUTE_BYLIST (WORD 陣列的指標) 之外,這些值會當做 SDWORD (signed long) 傳回。

欄位識別碼 傳回的值
SQL_CA_SS_COLUMN_HIDDEN* 如果參考的資料行是針對支援包含 FOR BROWSE 之 Transact-SQL SELECT 陳述式所建立的隱藏主索引鍵一部分,則為 TRUE。
SQL_CA_SS_COLUMN_ID 在目前的 Transact-SQL SELECT 陳述式中,COMPUTE 子句結果資料行的序數位置。
SQL_CA_SS_COLUMN_KEY* 如果參考的資料行是資料列的主索引鍵一部分,而且 Transact-SQL SELECT 陳述式包含 FOR BROWSE,則為 TRUE。
SQL_CA_SS_COLUMN_OP 指定在 COMPUTE 子句資料行中負責值之彙總運算子的整數。 整數值的定義位於 sqlncli.h。
SQL_CA_SS_COLUMN_ORDER 在 ODBC 或 Transact-SQL SELECT 陳述式的 ORDER BY 子句中,資料行的序數位置。
SQL_CA_SS_COLUMN_SIZE 將擷取自資料行的資料值繫結至 SQL_C_BINARY 變數的最大長度 (以位元組為單位)。
SQL_CA_SS_COLUMN_SSTYPE 儲存在 SQL Server 資料行中之資料的原生資料類型。 類型值的定義位於 sqlncli.h。
SQL_CA_SS_COLUMN_UTYPE SQL Server 資料行之使用者定義資料類型的基底資料類型。 類型值的定義位於 sqlncli.h。
SQL_CA_SS_COLUMN_VARYLEN 如果資料行的資料長度可以改變,則為 TRUE,否則為 FALSE。
SQL_CA_SS_COMPUTE_BYLIST WORD (unsigned short) 陣列的指標,指定在 COMPUTE 子句之 BY 片語中所使用的資料行。 如果 COMPUTE 子句沒有指定 BY 片語,則會傳回 NULL 指標。

陣列的第一個元素包含 BY 清單資料行的計數。 其他元素為資料行序數。
SQL_CA_SS_COMPUTE_ID 計算資料列的computeid,這是目前 Transact-SQL SELECT 語句中 COMPUTE 子句的結果。
SQL_CA_SS_NUM_COMPUTES 在目前的 Transact-SQL SELECT 陳述式中指定的 COMPUTE 子句數目。
SQL_CA_SS_NUM_ORDERS 在 ODBC 或 Transact-SQL SELECT 陳述式的 ORDER BY 子句中指定之資料行的數目。

* 如果語句屬性SQL_SOPT_SS_HIDDEN_COLUMNS設為 SQL_HC_ON,則可用。

SQL Server 2005 引進了驅動程式特定的描述元欄位,以提供其他資訊來代表 XML 架構集合名稱、架構名稱和目錄名稱。 如果這些屬性包含非英數字元,則它們不需要引號或逸出字元。 下表列出這些新的描述項欄位:

資料行名稱 類型 描述
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr 定義 XML 結構描述集合名稱所在目錄的名稱。 如果找不到目錄名稱,則此變數包含空字串。

此資訊會從 IRD 的 SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME 記錄欄位傳回,該欄位為唯讀欄位。
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr 定義 XML 結構描述集合名稱所在結構描述的名稱。 如果找不到結構描述名稱,則此變數包含空字串。

此資訊會從 IRD 的 SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME 記錄欄位傳回,該欄位為唯讀欄位。
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr XML 結構描述集合的名稱。 如果找不到名稱,則此變數包含空字串。

此資訊會從 IRD 的 SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME 記錄欄位傳回,該欄位為唯讀欄位。

此外,SQL Server 2005 引進了新的驅動程式特定描述元欄位,為結果集或參數化查詢的使用者定義類型 (UDT) 資料行提供其他資訊。 如果這些屬性包含非英數字元,則它們不需要引號或逸出字元。 下表列出這些新的描述項欄位:

資料行名稱 類型 描述
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr 包含 UDT 之目錄的名稱。
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr 包含 UDT 之結構描述的名稱。
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr UDT 的名稱。
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr UDT 的組件完整名稱。

現有的描述項欄位識別碼 SQL_DESC_TYPE_NAME 用來表示 UDT 的名稱。 適用於 UDT 類型資料行的 SQL_DESC_TYPE 欄位為 SQL_SS_UDT。

增強型日期和時間功能的 SQLColAttribute 支援

For the values returned for date/time types, see the "Information Returned in IRD Fields" section in Parameter and Result Metadata.

如需詳細資訊,請參閱 ODBC) (日期和時間改善

大型 CLR UDT 的 SQLColAttribute 支援

SQLColAttribute 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 ODBC) (大型 CLR User-Defined 類型

疏鬆資料行的 SQLColAttribute 支援

SQLColAttribute 會查詢新的實作資料列描述元 (IRD) 欄位SQL_CA_SS_IS_COLUMN_SET,以判斷資料行是否為 column_set 資料行。

如需詳細資訊,請參閱 疏鬆資料行支援 (ODBC)

另請參閱

SQLColAttribute 函數
ODBC API 實作詳細資料
SQLSetStmtAttr