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