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


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

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

Сведения о типе параметров процедур предоставляются методом ICommandWithParameters::GetParameterInfo для большинства типов параметров. Начиная с SQL Server 2005 года, с появлением определяемых пользователем типов и 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)