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


SQLColumns

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

Примечание

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

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

Драйвер ODBC SQL Server Native Client поддерживает отчеты для таблиц на связанных серверах, принимая двухкомпонентное имя для параметра CatalogName: Linked_Server_Name.Catalog_Name.

Для 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 используется для указания имени определяемого пользователем типа; поэтому в результирующий набор или SQLProcedureColumns не следует добавлять дополнительный SQLColumns столбец для него. DATA_TYPE для столбца или параметра определяемого пользователем типа имеет значение SQL_SS_UDT.

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

Когда клиент подключается к SQL Server и вызывает SQLColumns, использование значений NULL или wild карта для входного параметра каталога не возвращает информацию из других каталогов. Вместо этого будут возвращены сведения только о текущем каталоге. Клиент может сначала вызвать 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. Дополнительные сведения см. в статье Типы больших User-Defined среды 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).

См. также:

SQLColumns, функция
ODBC API Implementation Details