Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Можно использовать SQLColAttribute для получения атрибута столбца результирующих наборов для подготовленных или выполненных инструкций ODBC. Вызов SQLColAttribute подготовленных инструкций вызывает циклический обход в SQL Server. Драйвер ODBC собственного клиента SQL Server получает данные столбца результирующих наборов в рамках выполнения инструкции, поэтому вызов SQLColAttribute после завершения SQLExecute или SQLExecDirect не включает в себя циклический обход сервера.
Замечание
Атрибуты идентификатора столбца ODBC недоступны во всех результирующих наборах SQL Server.
| Идентификатор поля | Описание |
|---|---|
| SQL_COLUMN_TABLE_NAME | Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. |
| SQL_DESC_BASE_COLUMN_NAME | Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. |
| SQL_DESC_BASE_TABLE_NAME | Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. |
| SQL_DESC_CATALOG_NAME | Имя базы данных. Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. |
| SQL_DESC_LABEL | Доступно для всех результирующих наборов. Значение идентично значению поля SQL_DESC_NAME. Поле равно нулю длины, только если столбец является результатом выражения, и выражение не содержит назначения меток. |
| SQL_DESC_NAME | Доступно для всех результирующих наборов. Значение идентично значению поля SQL_DESC_LABEL. Поле равно нулю длины, только если столбец является результатом выражения, и выражение не содержит назначения меток. |
| SQL_DESC_SCHEMA_NAME | Имя владельца. Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. Доступно только в том случае, если имя владельца указано для столбца в инструкции SELECT. |
| SQL_DESC_TABLE_NAME | Доступно для результирующих наборов, полученных из инструкций, создающих курсоры сервера или выполняемые инструкции SELECT, содержащие предложение FOR BROWSE. |
| SQL_DESC_UNNAMED | SQL_NAMED для всех столбцов в результирующем наборе, если столбец не является результатом выражения, не содержащего назначения меток в рамках выражения. Когда SQL_DESC_UNNAMED возвращает SQL_UNNAMED, все атрибуты идентификатора столбца ODBC содержат строки нулевой длины для столбца. |
Драйвер ODBC собственного клиента SQL Server использует инструкцию 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.
Следующие атрибуты столбца — это расширения, предоставляемые драйвером ODBC собственного клиента SQL Server. Драйвер ODBC собственного клиента SQL Server возвращает все значения в параметре NumericAttrPtr . Значения возвращаются как SDWORD (подписанный длинный), кроме SQL_CA_SS_COMPUTE_BYLIST, который является указателем на массив WORD.
| Идентификатор поля | Возвращенное значение |
|---|---|
| SQL_CA_SS_COLUMN_HIDDEN* | Значение TRUE, если столбец, на который ссылается ссылка, является частью скрытого первичного ключа, созданного для поддержки инструкции SELECT Transact-SQL SELECT, содержащей FOR BROWSE. |
| SQL_CA_SS_COLUMN_ID | Порядковое положение столбца результата предложения COMPUTE в текущей инструкции Transact-SQL SELECT. |
| SQL_CA_SS_COLUMN_KEY* | ЗНАЧЕНИЕ TRUE, если столбец, на который ссылается ссылка, является частью первичного ключа строки, а инструкция SELECT Transact-SQL содержит FOR BROWSE. |
| SQL_CA_SS_COLUMN_OP | Целое число, указывающее оператор агрегата, ответственного за значение в столбце предложения COMPUTE. Определения целых значений находятся в sqlncli.h. |
| SQL_CA_SS_COLUMN_ORDER | Порядковое положение столбца в предложении ORDER BY инструкции ODBC или Transact-SQL инструкции SELECT. |
| 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 (без знака short), указывающий столбцы, используемые в фразе BY предложения COMPUTE. Если предложение COMPUTE не указывает фразу BY, возвращается указатель NULL. Первый элемент массива содержит количество столбцов списка BY. Дополнительные элементы — порядковые номера столбцов. |
| SQL_CA_SS_COMPUTE_ID | вычисление строки, которая является результатом предложения COMPUTE в текущей инструкции Transact-SQL SELECT. |
| SQL_CA_SS_NUM_COMPUTES | Количество предложений COMPUTE, указанных в текущей инструкции Transact-SQL SELECT. |
| SQL_CA_SS_NUM_ORDERS | Количество столбцов, указанных в предложении ORDER BY инструкции ODBC или Transact-SQL инструкции SELECT. |
* Доступно, если для атрибута инструкции SQL_SOPT_SS_HIDDEN_COLUMNS задано значение SQL_HC_ON.
В SQL Server 2005 появились поля дескриптора для конкретного драйвера, чтобы указать дополнительные сведения, чтобы указать имя коллекции XML-схем, имя схемы и имя каталога соответственно. Эти свойства не требуют кавычки или escape-символа, если они содержат не буквенно-цифровые символы. В следующей таблице перечислены эти новые поля дескриптора:
| Имя столбца | Тип | Описание |
|---|---|---|
| SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME | CharacterAttributePtr | Имя каталога, в котором определено имя коллекции схем XML. Если обнаружить имя каталога невозможно, то эта переменная содержит пустую строку. Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME IRD, являющегося полем чтения и записи. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E | CharacterAttributePtr | Имя схемы, в которой определено имя коллекции схем XML. Если обнаружить имя схемы невозможно, то эта переменная содержит пустую строку. Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME IRD, являющегося полем записи чтения и записи. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_NAME | CharacterAttributePtr | Имя коллекции схем XML. Если обнаружить имя невозможно, то эта переменная содержит пустую строку. Эти сведения возвращаются из поля записи SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME IRD, являющегося полем записи чтения и записи. |
Кроме того, в SQL Server 2005 появились новые поля дескриптора для конкретного драйвера, чтобы предоставить дополнительные сведения для столбца определяемого пользователем типа (UDT) результирующий набор или параметр UDT хранимой процедуры или параметризованного запроса. Эти свойства не требуют кавычки или escape-символа, если они содержат не буквенно-цифровые символы. В следующей таблице перечислены эти новые поля дескриптора:
| Имя столбца | Тип | Описание |
|---|---|---|
| SQL_CA_SS_UDT_CATALOG_NAME | CharacterAttributePtr | Имя каталога, содержащего определяемый пользователем идентификатор. |
| SQL_CA_SS_UDT_SCHEMA_NAME | CharacterAttributePtr | Имя схемы, содержащей определяемый пользователем код. |
| SQL_CA_SS_UDT_TYPE_NAME | CharacterAttributePtr | Имя определяемого пользователем типа. |
| SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME | CharacterAttributePtr | Полное имя сборки определяемого пользователя. |
Существующий идентификатор поля дескриптора SQL_DESC_TYPE_NAME используется для указания имени определяемого пользователем имени. Поле SQL_DESC_TYPE для столбца типа UDT SQL_SS_UDT.
Поддержка SQLColAttribute для расширенных функций даты и времени
Значения, возвращаемые для типов даты и времени, см. в разделе "Сведения, возвращаемые в полях IRD", в разделе "Параметры и метаданные результата".
Дополнительные сведения см. в разделе "Улучшения даты и времени" (ODBC).
Поддержка SQLColAttribute для больших определяемых пользователем UDR
SQLColAttribute поддерживает большие определяемые пользователем типы СРЕДЫ CLR (определяемые пользователем UDT). Дополнительные сведения см. в разделе "Крупные определяемые пользователем типы CLR" (ODBC).
Поддержка SQLColAttribute для разреженных столбцов
SQLColAttribute запрашивает новое поле дескриптора строки реализации (IRD), SQL_CA_SS_IS_COLUMN_SET, чтобы определить, является ли столбец столбцом column_set .
Дополнительные сведения см. в разделе "Поддержка разреженных столбцов( ODBC)".
См. также
Функция SQLColAttribute
Подробные сведения о реализации API-интерфейсов ODBC
SQLSetStmtAttr