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