Обнаружение типа возвращающего табличное значение параметра (драйвер OLE DB)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Скачать драйвер OLE DB

Потребитель (клиентское приложение, использующее драйвер 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)