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


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

Для получения метаданных возвращающего табличное значение параметра приложение вызывает функцию 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)