Дополнительные метаданные возвращающего табличное значение параметра

Чтобы получить метаданные для табличного параметра, приложение вызывает SQLProcedureColumns. Для табличного параметра SQLProcedureColumns возвращает одну строку. Добавлены два дополнительных столбца SQL Server, SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME, чтобы предоставить сведения о схеме и каталоге для типов таблиц, связанных с табличными параметрами. В соответствии со спецификацией ODBC SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME отображаются перед добавлением всех столбцов, относящихся к драйверу, в более ранних версиях SQL Server, и после всех столбцов, которым требуется сам ODBC.

В следующей таблице приводится список столбцов, имеющих отношение к возвращаемым табличное значение параметрам.

Имя столбца Тип данных Значения/комментарии
ТИП_ДАННЫХ Smallint, не NULL SQL_SS_TABLE
ТИП_ИМЯ WVarchar(128), не NULL Имя типа возвращающего табличное значение параметра.
COLUMN_SIZE Целое число Отсутствует
BUFFER_LENGTH Целое число 0
DECIMAL_DIGITS Smallint Отсутствует
NUM_PREC_RADIX Smallint Отсутствует
МОЖЕТ БЫТЬ NULL Smallint, не NULL SQL_NULLABLE
ПРИМЕЧАНИЯ Varchar Отсутствует
COLUMN_DEF WVarchar(4000) Отсутствует
SQL_DATA_TYPE Smallint, не NULL SQL_SS_TABLE
SQL_DATETIME_SUB Smallint Отсутствует
CHAR_OCTET_LENGTH Целое число Отсутствует
ORDINAL_POSITION Integer, не NULL Порядковый номер параметра.
IS_NULLABLE Varchar "ДА"
SS_TYPE_CATALOG_NAME WVarchar(128), не NULL Каталог, содержащий определение табличного типа для возвращающего табличное значение параметра.
SS_TYPE_SCHEMA_NAME WVarchar(128), не NULL Схема, содержащая определение табличного типа для возвращающего табличное значение параметра.

Столбцы WVarchar определяются как Varchar в спецификации ODBC, но фактически возвращаются как WVarchar во всех последних драйверах ODBC SQL Server. Это изменение было сделано при добавлении поддержки Unicide в спецификацию ODBC 3.5, но не было явно вызвано.

Чтобы получить дополнительные метаданные для параметров с табличным значением, приложение использует функции каталога SQLColumns и SQLPrimaryKeys. Перед вызовом этих функций для возвращающих табличное значение параметров приложение должно присвоить атрибуту инструкции SQL_SOPT_SS_NAME_SCOPE значение SQL_SS_NAME_SCOPE_TABLE_TYPE. Оно указывает, что приложению требуются метаданные возвращающего табличное значение типа, а не таблицы. Затем приложение передает TYPE_NAME табличного параметра в качестве параметра TableName . SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME используются с параметрами CatalogName и SchemaName соответственно для идентификации каталога и схемы для параметра с табличным значением. Когда приложение закончит получать метаданные для возвращающего табличное значение параметра, оно должно вновь присвоить SQL_SOPT_SS_NAME_SCOPE значение по умолчанию SQL_SS_NAME_SCOPE_TABLE.

Если SQL_SOPT_SS_NAME_SCOPE имеет значение SQL_SS_NAME_SCOPE_TABLE, то запросы к связанным серверам завершаются ошибкой. Вызовы SQLColumns или SQLPrimaryKeys с каталогом, содержащим компонент сервера, завершаются ошибкой.

См. также

Возвращающие табличные значения параметры (ODBC)