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


Обнаружение типа возвращающего табличное значение параметра

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

То есть клиентское приложение с помощью поставщика OLE DB собственного клиента SQL Server может обнаружить тип каждого параметра команды, если текст команды был предоставлен поставщику OLE DB. После того как тип возвращающего табличное значение параметра становится известен, потребитель может определить метаданные для каждого отдельного столбца возвращающего табличное значение параметра.

Сведения о типе параметров процедур предоставляются методом ICommandWithParameters::GetParameterInfo для большинства типов параметров. Начиная с SQL Server 2005 (9.x), с введением определяемых пользователем типов и xml-типа данных метод GetParameterInfo был недостаточно для этой цели, так как не удалось предоставить определяемые пользователем сведения о типе (имя, схема и каталог) через ICommandWithParameters. Для предоставления расширенных сведений о типе был определен новый интерфейс ISSCommandWithParameters.

Среди прочего, интерфейс ISSCommandWithParameters позволяет получать подробные сведения для возвращающих табличное значение параметров. Клиент вызывает ISSCommandWithParameters::GetParameterInfo после подготовки объекта команды. Для возвращающих табличные значения параметров элемент wType структуры DBPARAMINFO устанавливается поставщиком в значение DBTYPE_TABLE. Поле ulParamSize структуры DBPARAMINFO имеет значение ~0.

Объект-получатель затем запрашивает дополнительные свойства (имя каталога для типа табличного параметра, имя схемы для типа табличного параметра, имя типа табличного параметра, порядок столбцов и столбцы по умолчанию) с помощью ISSCommandWithParameters::GetParameterProperties.

После того как имя типа стало известно, для получения сведений об отдельном столбце потребитель должен либо вызвать метод IOpenRowset::OpenRowset, либо получить набор строк DBSCHEMA_TABLE_TYPE_COLUMNS, указав имя типа возвращающего табличное значение параметра в качестве имени таблицы.

См. также

Возвращающие табличные значения параметры (OLE DB)
Использование возвращающих табличные значения параметров (OLE DB)