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


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.x функция SQLColumns возвращает все таблицы, имена которых соответствуют параметру 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).

См. также

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

Подробности реализации API-интерфейса ODBC

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

SQLColumns, функция