SQLColAttributeSQLColAttribute

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

SQLColAttribute можно использовать для получения атрибута столбца результирующего набора для подготовленных или выполненных инструкций ODBC.You can use SQLColAttribute to retrieve an attribute of a result set column for either prepared or executed ODBC statements. Вызов SQLColAttribute для подготовленных инструкций вызывает обмен данными с SQL ServerSQL Server .Calling SQLColAttribute on prepared statements causes a roundtrip to SQL ServerSQL Server. SQL ServerSQL ServerДрайвер ODBC для собственного клиента получает данные столбца результирующего набора в ходе выполнения инструкции, поэтому вызов SQLColAttribute после завершения SQLExecute или SQLExecDirect не требует циклического обмена данными с сервером.The SQL ServerSQL Server Native Client ODBC driver receives result set column data as part of statement execution, so calling SQLColAttribute after the completion of SQLExecute or SQLExecDirect does not involve a server roundtrip.

Примечание

Атрибуты ODBC идентификаторов столбца доступны не во всех результирующих наборах SQL ServerSQL Server.ODBC column identifier attributes are not available on all SQL ServerSQL Server result sets.

Идентификатор поляField identifier ОписаниеDescription
SQL_COLUMN_TABLE_NAMESQL_COLUMN_TABLE_NAME Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_BASE_COLUMN_NAMESQL_DESC_BASE_COLUMN_NAME Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_BASE_TABLE_NAMESQL_DESC_BASE_TABLE_NAME Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_CATALOG_NAMESQL_DESC_CATALOG_NAME имя базы данных.Database name. Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_LABELSQL_DESC_LABEL Можно использовать для всех результирующих наборов.Available on all result sets. Значение идентично значению поля SQL_DESC_NAME.The value is identical to the value of the SQL_DESC_NAME field.

Длина поля равна нулю только в том случае, если столбец является результатом выражения, не содержащего назначения метки.The field is zero length only if a column is the result of an expression and the expression does not contain a label assignment.
SQL_DESC_NAMESQL_DESC_NAME Можно использовать для всех результирующих наборов.Available on all result sets. Значение идентично значению поля SQL_DESC_LABEL.The value is identical to the value of the SQL_DESC_LABEL field.

Длина поля равна нулю только в том случае, если столбец является результатом выражения, не содержащего назначения метки.The field is zero length only if a column is the result of an expression and the expression does not contain a label assignment.
SQL_DESC_SCHEMA_NAMESQL_DESC_SCHEMA_NAME Имя владельца.Owner name. Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.

Доступно, только если имя владельца задано для столбца в инструкции SELECT.Available only if the owner name is specified for the column in the SELECT statement.
SQL_DESC_TABLE_NAMESQL_DESC_TABLE_NAME Можно использовать для результирующих наборов, полученных от инструкций, которые формируют серверные курсоры, или для выполненных инструкций SELECT, содержащих предложение FOR BROWSE.Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_UNNAMEDSQL_DESC_UNNAMED SQL_NAMED для всех столбцов в результирующем наборе, за исключением случаев, когда столбец является результатом выражения, не содержащего назначения метки в составе выражения.SQL_NAMED for all columns in a result set unless a column is the result of an expression that does not contain a label assignment as part of the expression. Если SQL_DESC_UNNAMED возвращает SQL_UNNAMED, все атрибуты ODBC идентификаторов столбцов содержат строки нулевой длины для этого столбца.When SQL_DESC_UNNAMED returns SQL_UNNAMED, all ODBC column identifier attributes contain zero length strings for the column.

SQL ServerSQL Server Драйвер ODBC для собственного клиента использует инструкцию SET FMTONLY, чтобы уменьшить нагрузку на сервер при вызове SQLColAttribute для подготовленных, но невыполненных инструкций.Native Client ODBC driver uses the SET FMTONLY statement to reduce server overhead when SQLColAttribute is called for prepared but unexecuted statements.

Для типов больших значений SQLColAttribute будет возвращать следующие значения:For large value types, SQLColAttribute will return the following values:

Идентификатор поляField identifier Описание измененияDescription of change
SQL_DESC_DISPLAY_SIZESQL_DESC_DISPLAY_SIZE Максимальное число символов, необходимых для отображения данных столбца.This is the maximum number of characters required to display data from the column. Для столбцов типов больших значений возвращается значение SQL_SS_LENGTH_UNLIMITED.For large value type columns, the value returned is SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTHSQL_DESC_LENGTH Возвращает в результирующем наборе фактическую длину столбца.Returns the actual length of the column in the result set. Для столбцов типов больших значений возвращается значение SQL_SS_LENGTH_UNLIMITED.For large value type columns, the value returned is SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTHSQL_DESC_OCTET_LENGTH Возвращает максимальную длину столбца с типом больших значений.Returns the maximum length of a large value type column. SQL_SS_LENGTH_UNLIMITED используется для указания неограниченного размера.SQL_SS_LENGTH_UNLIMITED is used to indicate unlimited size.
SQL_DESC_PRECISIONSQL_DESC_PRECISION Возвращает значение SQL_SS_LENGTH_UNLIMITED для столбцов с типом больших значений.Returns the value SQL_SS_LENGTH_UNLIMITED for large value type columns.
SQL_DESC_TYPESQL_DESC_TYPE Возвращает SQL_VARCHAR, SQL_WVARCHAR и SQL_VARBINARY для типов больших значений.Returns SQL_VARCHAR, SQL_WVARCHAR, and SQL_VARBINARY for large value types.
SQL_DESC_TYPE_NAMESQL_DESC_TYPE_NAME Возвращает типы данных varchar, varbinary и nvarchar для типов больших значений.Returns "varchar", "varbinary", "nvarchar" for the large value types.

Для всех версий атрибуты столбцов возвращаются только для первого результирующего набора, если несколько результирующих наборов формируются готовым пакетом инструкций SQL.For all versions, column attributes are reported for only the first result set when multiple result sets are generated by a prepared batch of SQL statements.

Следующие атрибуты столбцов являются расширениями, предоставляемыми SQL ServerSQL Server драйвером ODBC для собственного клиента.The following column attributes are extensions exposed by the SQL ServerSQL Server Native Client ODBC driver. SQL ServerSQL ServerДрайвер ODBC для собственного клиента возвращает все значения в параметре нумерикаттрптр .The SQL ServerSQL Server Native Client ODBC driver returns all values in the NumericAttrPtr parameter. Возвращаются значения с типом SDWORD (signed long) за исключением SQL_CA_SS_COMPUTE_BYLIST, которое представляет собой указатель на массив WORD.The values are returned as SDWORD (signed long) except SQL_CA_SS_COMPUTE_BYLIST, which is a pointer to a WORD array.

Идентификатор поляField identifier Возвращенное значениеValue returned
SQL_CA_SS_COLUMN_HIDDEN*SQL_CA_SS_COLUMN_HIDDEN* Значение TRUE, если столбец является частью скрытого первичного ключа, созданного для поддержки инструкции Transact-SQL SELECT, содержащей FOR BROWSE.TRUE if the column referenced is part of a hidden primary key created to support a Transact-SQL SELECT statement containing FOR BROWSE.
SQL_CA_SS_COLUMN_IDSQL_CA_SS_COLUMN_ID Порядковый номер результирующего столбца предложения COMPUTE в текущей инструкции Transact-SQL SELECT.Ordinal position of a COMPUTE clause result column within the current Transact-SQL SELECT statement.
SQL_CA_SS_COLUMN_KEY*SQL_CA_SS_COLUMN_KEY* Значение TRUE, если столбец является частью первичного ключа строки, а инструкция Transact-SQL SELECT содержит FOR BROWSE.TRUE if the column referenced is part of a primary key for the row and the Transact-SQL SELECT statement contains FOR BROWSE.
SQL_CA_SS_COLUMN_OPSQL_CA_SS_COLUMN_OP Целочисленное значение, задающее статистический оператор, ответственный за значение в столбце предложения COMPUTE.Integer specifying the aggregate operator responsible for the value in a COMPUTE clause column. Определения целочисленных значений находятся в файле sqlncli.h.Definitions of the integer values are in sqlncli.h.
SQL_CA_SS_COLUMN_ORDERSQL_CA_SS_COLUMN_ORDER Порядковый номер столбца в предложении ORDER BY инструкции ODBC или Transact-SQL SELECT.Ordinal position of the column within an ODBC or Transact-SQL SELECT statement's ORDER BY clause.
SQL_CA_SS_COLUMN_SIZESQL_CA_SS_COLUMN_SIZE Максимальная длина в байтах, необходимая для привязки значения данных, полученных из столбца, к переменной SQL_C_BINARY.Maximum length, in bytes, required to bind a data value retrieved from the column to a SQL_C_BINARY variable.
SQL_CA_SS_COLUMN_SSTYPESQL_CA_SS_COLUMN_SSTYPE Собственный тип данных, хранящихся в столбце SQL Server.Native data type of data stored in the SQL Server column. Определения значений типов находятся в файле sqlncli.h.Definitions of the type values are in sqlncli.h.
SQL_CA_SS_COLUMN_UTYPESQL_CA_SS_COLUMN_UTYPE Базовый тип данных определяемого пользователем типа данных столбца SQL Server.Base data type of the SQL Server column's user-defined data type. Определения значений типов находятся в файле sqlncli.h.Definitions of the type values are in sqlncli.h.
SQL_CA_SS_COLUMN_VARYLENSQL_CA_SS_COLUMN_VARYLEN Значение TRUE, если длина данных столбца может быть разной, в противном случае FALSE.TRUE if the column's data can vary in length, FALSE otherwise.
SQL_CA_SS_COMPUTE_BYLISTSQL_CA_SS_COMPUTE_BYLIST Указатель на массив WORD (unsigned short), задающий столбцы, используемые во фразе BY предложения COMPUTE.Pointer to an array of WORD (unsigned short) specifying the columns used in the BY phrase of a COMPUTE clause. Если в предложении COMPUTE не задана фраза BY, возвращается указатель NULL.If the COMPUTE clause does not specify a BY phrase, a NULL pointer is returned.

Первый элемент массива содержит счетчик столбцов BY.The first element of the array contains the count of BY list columns. Дополнительные элементы являются порядковыми номерами столбцов.Additional elements are the column ordinals.
SQL_CA_SS_COMPUTE_IDSQL_CA_SS_COMPUTE_ID компутеид строки, которая является результатом предложения COMPUTE в текущей инструкции TRANSACT-SQL SELECT.computeid of a row that is the result of a COMPUTE clause in the current Transact-SQL SELECT statement.
SQL_CA_SS_NUM_COMPUTESSQL_CA_SS_NUM_COMPUTES Количество предложений COMPUTE, заданных в текущей инструкции Transact-SQL SELECT.Number of COMPUTE clauses specified in the current Transact-SQL SELECT statement.
SQL_CA_SS_NUM_ORDERSSQL_CA_SS_NUM_ORDERS Количество столбцов в предложении ORDER BY инструкции ODBC или Transact-SQL SELECT.Number of columns specified in an ODBC or Transact-SQL SELECT statement's ORDER BY clause.

* Доступный атрибут инструкции If SQL_SOPT_SS_HIDDEN_COLUMNS имеет значение SQL_HC_ON.* Available if statement attribute SQL_SOPT_SS_HIDDEN_COLUMNS is set to SQL_HC_ON.

SQL Server 2005 (9.x)SQL Server 2005 (9.x) Добавлены связанные с драйвером поля дескриптора для предоставления дополнительных сведений для обозначения имени коллекции XML-схем, имени схемы и имени каталога соответственно.introduced driver-specific descriptor fields to provide additional information to denote the XML schema collection name, the schema name, and the catalog name, respectively. При наличии в этих свойствах неалфавитных символов использование кавычек или escape-символа не требуется.These properties do not require quotation marks or an escape character if they contain non-alphanumeric characters. Эти новые поля дескриптора приведены в следующей таблице:The following table lists these new descriptor fields:

Имя столбцаColumn name ТипType ОписаниеDescription
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAMESQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtrCharacterAttributePtr Имя каталога, в котором определено имя коллекции схем XML.The name of the catalog where an XML schema collection name is defined. Если обнаружить имя каталога невозможно, то эта переменная содержит пустую строку.If the catalog name cannot be found, then this variable contains an empty string.

Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME IRD, предназначенного для чтения и записи.This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME record field of the IRD, which is a read-write field.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM ESQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtrCharacterAttributePtr Имя схемы, в которой определено имя коллекции схем XML.The name of the schema where an XML schema collection name is defined. Если обнаружить имя схемы невозможно, то эта переменная содержит пустую строку.If the schema name cannot be found, then this variable contains an empty string.

Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME IRD, предназначенного для чтения и записи.This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME record field of the IRD, which is a read-write field.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAMESQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtrCharacterAttributePtr Имя коллекции схем XML.The name of an XML schema collection. Если обнаружить имя невозможно, то эта переменная содержит пустую строку.If the name cannot be found, then this variable contains an empty string.

Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME IRD, предназначенного для чтения и записи.This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME record field of the IRD, which is a read-write field.

Кроме того, в SQL Server 2005 (9.x)SQL Server 2005 (9.x) представлены новые поля дескриптора для получения дополнительных сведений для столбца результирующего набора с определяемым пользователем типом данных (UDT) и для параметра UDT хранимой процедуры или параметризированного запроса.Also, SQL Server 2005 (9.x)SQL Server 2005 (9.x) introduced new driver-specific descriptor fields to provide additional information for either a user-defined type (UDT) column of a result set or a UDT parameter of a stored procedure or parameterized query. При наличии в этих свойствах неалфавитных символов использование кавычек или escape-символа не требуется.These properties do not require quotation marks or an escape character if they contain non-alphanumeric characters. Эти новые поля дескриптора приведены в следующей таблице:The following table lists these new descriptor fields:

Имя столбцаColumn Name ТипType ОписаниеDescription
SQL_CA_SS_UDT_CATALOG_NAMESQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtrCharacterAttributePtr Имя каталога, содержащего определяемый пользователем тип.The name of the catalog containing the UDT.
SQL_CA_SS_UDT_SCHEMA_NAMESQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtrCharacterAttributePtr Имя схемы, содержащей определяемый пользователем тип.The name of the schema containing the UDT.
SQL_CA_SS_UDT_TYPE_NAMESQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtrCharacterAttributePtr Имя определяемого пользователем типа.The name of the UDT.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAMESQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtrCharacterAttributePtr Полное имя сборки определяемого пользователем типа.The assembly qualified name of the UDT.

Идентификатор существующего дескриптора поля SQL_DESC_TYPE_NAME используется для указания имени определяемого пользователем типа данных.The existing descriptor field identifier SQL_DESC_TYPE_NAME is used to indicate the name of the UDT. Поле SQL_DESC_TYPE для столбца определяемого пользователем типа содержит значение SQL_SS_UDT.The SQL_DESC_TYPE field for a UDT type column is SQL_SS_UDT.

Поддержка SQLColAttribute для усовершенствованных функций даты-времениSQLColAttribute Support for Enhanced Date and Time Features

Значения, возвращаемые для типов даты и времени, см. в подразделе «сведения, возвращаемые в полях IRD» раздела метаданные параметров и результатов.For the values returned for date/time types, see the "Information Returned in IRD Fields" section in Parameter and Result Metadata.

Дополнительные сведения см. в разделе улучшения даты и времени ()ODBC .For more information, see Date and Time Improvements (ODBC).

Поддержка SQLColAttribute для больших определяемых пользователем типов CLRSQLColAttribute Support for Large CLR UDTs

SQLColAttribute поддерживает большие определяемые пользователем типы данных CLR (UDT).SQLColAttribute supports large CLR user-defined types (UDTs). Дополнительные сведения см. в разделе большие определяемые пользователем типы данных CLR ()ODBC .For more information, see Large CLR User-Defined Types (ODBC).

Поддержка SQLColAttribute для разреженных столбцовSQLColAttribute Support for Sparse Columns

SQLColAttribute запрашивает новое поле дескриптора строки реализации (IRD), SQL_CA_SS_IS_COLUMN_SET, чтобы определить, является ли столбец column_setным столбцом.SQLColAttribute queries the new implementation row descriptor (IRD) field, SQL_CA_SS_IS_COLUMN_SET, to determine if a column is a column_set column.

Дополнительные сведения см. в разделе Поддержка разреженных столбцов ()ODBC .For more information, see Sparse Columns Support (ODBC).

См. также:See Also

Функция SQLColAttribute SQLColAttribute Function
Сведения о реализации API ODBC ODBC API Implementation Details
SQLSetStmtAttrSQLSetStmtAttr