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


Поддержка типов параметров 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)