Поделиться через


SQLColumns

Функция SQLColumns возвращает SQL_SUCCESS указывая, существуют ли значения для параметров CatalogName, TableName и ColumnName. Функция SQLFetch возвращает значение SQL_NO_DATA, если в этих параметрах заданы недопустимые значения.

ПримечаниеПримечание

Для типов больших значений все параметры длины будут возвращены со значением SQL_SS_LENGTH_UNLIMITED.

SQLColumns может быть выполнена для статического серверного курсора. При попытке выполнить функцию SQLColumns для обновляемого (динамического или набора ключей) курсора будет возвращено значение SQL_SUCCESS_WITH_INFO, которое указывает на то, что тип курсора был изменен.

Драйвер ODBC для собственного клиента SQL Server поддерживает выдачу сведений о таблицах, находящихся на связанных серверах, принимая двухкомпонентное имя в параметре CatalogName: Имя_Связанного_Сервера.Имя_Каталога.

Для приложений ODBC версий 2.x, не использующих символы-шаблоны в TableName, SQLColumns возвращает сведения обо всех таблицах, чьи имена совпадают с TableName и которые принадлежат текущему пользователю. Если текущий пользователь не владеет ни одной из таблиц, чьи имена совпадают с параметром TableName, то SQLColumns возвращает сведения обо всех таблицах, принадлежащих другим пользователям, чьи имена совпадают с параметром TableName. Для приложений ODBC версий 2.x, использующих символы-шаблоны, SQLColumns возвращает все таблицы, чьи имена совпадают с TableName. Для приложений ODBC версий 3.xSQLColumns возвращает все таблицы, чьи имена совпадают с TableName независимо от владельца, или использования символов-шаблонов.

В таблице перечислены столбцы, возвращаемые в результирующем наборе.

Имя столбца

Описание

DATA_TYPE

Возвращает значение SQL_VARCHAR, SQL_VARBINARY или SQL_WVARCHAR для типов данных varchar(max).

TYPE_NAME

Возвращает значения «varchar», «varbinary» или «nvarchar» для типов данных varchar(max), varbinary(max) и nvarchar(max).

COLUMN_SIZE

Возвращает значение SQL_SS_LENGTH_UNLIMITED для типов данных varchar(max), указывающее на то, что размер столбца неограничен.

BUFFER_LENGTH

Возвращает значение SQL_SS_LENGTH_UNLIMITED для типов данных varchar(max), указывающее на то, что размер буфера неограничен.

SQL_DATA_TYPE

Возвращает значение SQL_VARCHAR, SQL_VARBINARY или SQL_WVARCHAR для типов данных varchar(max).

CHAR_OCTET_LENGTH

Возвращает максимальную длину символьного или двоичного столбца. Возвращает 0 для указания того, что размер неограничен.

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

Возвращает имя каталога, в котором определено имя коллекции схем XML. Если обнаружить имя каталога невозможно, то эта переменная содержит пустую строку.

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

Возвращает имя схемы, в которой определено имя коллекции схем XML. Если обнаружить имя схемы невозможно, то эта переменная содержит пустую строку.

SS_XML_SCHEMACOLLECTION_NAME

Возвращает имя коллекции схем XML. Если обнаружить имя невозможно, то эта переменная содержит пустую строку.

SS_UDT_CATALOG_NAME

Имя каталога, содержащего определяемый пользователем тип.

SS_UDT_SCHEMA_NAME

Имя схемы, содержащей определяемый пользователем тип.

SS_UDT_ASSEMBLY_TYPE_NAME

Имя сборки определяемого пользователем типа.

Для определяемых пользователем типов столбец TYPE_NAME используется для определения имени типа. Таким образом, не нужно добавлять для него в результирующий набор SQLColumns или SQLProcedureColumns дополнительный столбец. DATA_TYPE для столбца или параметра определяемого пользователем типа имеет значение SQL_SS_UDT.

Для параметров определяемого пользователем типа можно использовать новые, зависящие от драйвера дескрипторы, определенные выше, для получения или установки дополнительных свойств метаданных определяемого пользователем типа, если сервер должен вернуть или потребовать данные сведения.

При соединении клиента с SQL Server и вызове SQLColumns, использование значений типа NULL или символы-шаблоны для входного параметра каталога не вернет сведения из других каталогов. Вместо этого будут возвращены сведения только о текущем каталоге. Сначала клиент может вызвать SQLTables для определения, в каком каталоге находится нужная таблица. Затем клиент может использовать это значение каталога для входного параметра каталога в своем вызове SQLColumns для получения сведений о столбцах данной таблицы.

SQLColumns и возвращающие табличное значение параметры

Результирующий набор, возвращенный методом SQLColumns, зависит от настройки SQL_SOPT_SS_NAME_SCOPE. Дополнительные сведения см. в разделе SQLSetStmtAttr. Следующие столбцы добавлены для возвращающих табличное значение параметров:

Имя столбца

Тип данных

Содержание

SS_IS_COMPUTED

Smallint

Если столбец является вычисляемым, то для него в TABLE_TYPE это значение равно SQL_TRUE. В противном случае — SQL_FALSE.

SS_IS_IDENTITY

Smallint

SQL_TRUE, если столбец является столбцом идентификаторов. В противном случае — SQL_FALSE.

Дополнительные сведения о возвращающих табличное значение параметрах см. в разделе Возвращающие табличное значение параметры (ODBC).

Поддержка SQLColumns новых возможностей даты-времени

Сведения о значениях, возвращаемых для типов даты-времени, см. в разделе Метаданные каталога.

Дополнительные сведения см. в разделе Улучшенная обработка даты и времени (ODBC).

Поддержка SQLColumns определяемых пользователем типов больших данных CLR.

SQLColumns поддерживает определяемые пользователем типы больших данных CLR. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).

Поддержка SQLColumns разреженных столбцов

В результирующий набор для SQLColumns было добавлено два зависящих от SQL Server столбца.

Имя столбца

Тип данных

Описание

SS_IS_SPARSE

Smallint

Если столбец является разреженным, то значение равно SQL_TRUE. В противном случае — SQL_FALSE.

SS_IS_COLUMN_SET

Smallint

Если столбец является column_set, то значение равно SQL_TRUE. В противном случае — SQL_FALSE.

В соответствии со спецификацией ODBC SS_IS_SPARSE и SS_IS_COLUMN_SET появляются перед всеми специфичными для драйвера столбцами, добавленными в версии SQL Server более ранние, чем SQL Server 2008, и после всех столбцов, применяемых ODBC.

Результирующий набор, возвращенный методом SQLColumns, зависит от настройки SQL_SOPT_SS_NAME_SCOPE. Дополнительные сведения см. в разделе SQLSetStmtAttr.

Дополнительные сведения о разреженных столбцах в ODBC см. в разделе Поддержка разреженных столбцов (ODBC).

См. также

Основные понятия

Другие ресурсы