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).
См. также