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

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

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

Имя столбца

Тип данных

Значения/комментарии

DATA_TYPE

Smallint, не NULL

SQL_SS_TABLE

TYPE_NAME

WVarchar(128), не NULL

Имя типа возвращающего табличное значение параметра.

COLUMN_SIZE

Целое число

NULL

BUFFER_LENGTH

Целое число

0

DECIMAL_DIGITS

Smallint

NULL

NUM_PREC_RADIX

Smallint

NULL

NULLABLE

Smallint, не NULL

SQL_NULLABLE

REMARKS

Varchar

NULL

COLUMN_DEF

WVarchar(4000)

NULL

SQL_DATA_TYPE

Smallint, не NULL

SQL_SS_TABLE

SQL_DATETIME_SUB

Smallint

NULL

CHAR_OCTET_LENGTH

Целое число

NULL

ORDINAL_POSITION

Integer, не NULL

Порядковый номер параметра.

IS_NULLABLE

Varchar

"YES"

SS_TYPE_CATALOG_NAME

WVarchar(128), не NULL

Каталог, содержащий определение табличного типа для возвращающего табличное значение параметра.

SS_TYPE_SCHEMA_NAME

WVarchar(128), не NULL

Схема, содержащая определение табличного типа для возвращающего табличное значение параметра.

Столбцы типа WVarchar в спецификации ODBC определяются как тип Varchar, но в действительности во всех последних драйверах SQL Server ODBC возвращаются как WVarchar. Это изменение было сделано, когда к спецификации 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)