Поддержка типов параметров OLE DB, возвращающих табличное значение (методы)

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

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

Следующие стандартные методы OLE DB поддерживают возвращающие табличные значения параметры.

Метод Поддержка возвращающих табличные значения параметров
ITableDefinitionWithConstraints::CreateTableWithConstraints Используется при наличии сведений о типе возвращающего табличное значение параметра и необходимости создания экземпляра объекта набора строк возвращающего табличное значение параметра на основе сведений о типе.

Дополнительные сведения вы найдете в разделе "Статический сценарий" статьи о создании набора строк для возвращающего табличные значения параметра.
IOpenRowset::OpenRowset Используется при отсутствии сведений о типе возвращающего табличное значение параметра и необходимости создания экземпляра объекта набора строк возвращающего табличное значение параметра на основе метаданных, полученных от сервера.

Дополнительные сведения вы найдете в разделе "Динамический сценарий" статьи о создании набора строк для возвращающего табличные значения параметра.
ISSCommandWithParameters::SetParameterInfo Для указания возвращающего табличное значение параметра команды потребитель указывает тип параметра "table" или "DBTYPE_TABLE" в элементе pwszName структуры DBPARAMBINDINFO. ulParamSize имеет значение ~0. Дополнительные сведения см. в разделе "Спецификация возвращающих табличные значения параметров" статьи о выполнении команд с возвращающим табличные значения параметром.
ISSCommandWithParameters::SetParameterProperties Задает свойства, определенные для возвращающих табличные значения параметров, например имя схемы, имя типа, порядок столбца и столбцы по умолчанию.

Потребитель указывает порядковый номер параметра в элементе iOrdinal структуры SSPARAMPROPS. Запрошенный набор свойств — DBPROPSET_SQLSERVERPARAMETER.
ISSCommandWithParameters::GetParameterInfo Возвращает типы всех параметров в указанную команду.

Для возвращающих табличные значения параметров поле wType в структуре DBPARAMINFO будет иметь тип DBTYPE_TABLE. Для определения неизвестной длины поле ulParamSize будет установлено в значение ~0.
ISSCommandWithParameters::GetParameterProperties Возвращает дополнительные сведения о типе для параметров типа DBTYPE_TABLE.

Потребитель указывает порядковый номер параметра в элементе iOrdinal структуры SSPARAMPROPS. Потребитель может запросить любое свойство из набора свойств DBPROPSET_SQLSERVERPARAMETER, которые перечислены в ISSCommandWithParameters::SetParameterProperties.

Поскольку потребителю неизвестен тип возвращающего табличное значение параметра, поставщик должен установить правильные значения свойств SSPROP_PARAM_TYPE_TYPENAME, SSPROP_PARAM_TYPE_SCHEMANAME и SSPROP_PARAM_TYPE_CATALOGNAME. Оставшиеся свойства, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS и SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER, сохранят значения по умолчанию. После обнаружения потребителем имени типа возвращающего табличное значение параметра он использует метод IOpenRowset::OpenRowset для создания экземпляра этого параметра, указав имя его типа. Дополнительные сведения см. в статье Обнаружение типа возвращающего табличное значение параметра.
IRowsetInfo::GetProperties Возвращает свойства набора строк возвращающего табличное значение параметра. Потребитель может использовать эти параметры для оптимальной установки привязок.
IColumnsRowset::GetColumnsRowset Получает метаданные о таблице SQL Server. Для возвращающих табличные значения параметров этот же интерфейс предоставляет подробные метаданные о каждом столбце, например:

DBCOLUMN_FLAGS обозначает допустимость значений типа NULL в бите DBCOLUMNFLAGS_ISNULLABLE;

DBCOLUMN_ISUNIQUE обозначает, является ли столбец столбцом идентификаторов;

DBCOLUMN_COMPUTEMODE обозначает, является ли столбец вычисляемым.
IAccessor::CreateAccessor Для привязки объекта набора строк возвращающего табличное значение параметра создается метод доступа с элементом wType, установленным в значение DBTYPE_TABLE. Структура DBOBJECT будет содержать IID_IRowset или любой другой допустимый интерфейс объекта набора строк в элементе iid. Оставшиеся поля обрабатываются тем же способом, как и DBTYPE_IUNKNOWN.

См. также:

Поддержка типов параметров OLE DB, возвращающих табличные значения
Создание набора строк возвращающего табличное значение параметра
Использование возвращающих табличные значения параметров (OLE DB)