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).