Поддержка типа возвращающего табличное значение параметра OLE DB

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

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

В этой статье описывается поддержка типов OLE DB для параметров, возвращающих табличные значения.

Объект набора строк параметра, возвращающего табличное значение

Можно создать специальный объект набора строк для параметров, возвращающих табличное значение. Чтобы создать объект набора строк для параметра, возвращающего табличное значение, можно применить ITableDefinitionWithConstraints::CreateTableWithConstraints или IOpenRowset::OpenRowset. Для этого установите элемент eKind параметра pTableID в значение DBKIND_GUID_NAME и укажите CLSID_ROWSET_INMEMORY как элемент guid. Имя типа сервера для параметра, возвращающего табличное значение, необходимо указать в элементе pwszName параметра pTableID при вызове IOpenRowset::OpenRowset. Объект набора строк параметра, возвращающего табличное значение, действует так же, как объект OLE DB Driver for SQL Server.

const GUID CLSID_ROWSET_TVP =   
{0xc7ef28d5, 0x7bee, 0x443f, {0x86, 0xda, 0xe3, 0x98, 0x4f, 0xcd, 0x4d, 0xf9}};  
  
CoType RowsetTVP  
{  
[mandatory] interface IAccessor;  
[mandatory] interface IColumnsInfo;  
[mandatory] interface IConvertType;  
[mandatory] interface IRowset;  
[mandatory] interface IRowsetInfo;  
[optional]  interface IColumnsRowset;  
[optional]  interface IRowsetChange;  
[optional]  interface ISupportErrorInfo;  
};  

DBTYPE_TABLE

Новый тип, DBTYPE_TABLE, представляет собой табличный тип. Этот тип описывает возвращающие табличное значение параметры в различных интерфейсах OLE DB, где требуется тип DBTYPE.

#define DBTYPE_TABLE (143)  

DBTYPE_TABLE имеет такой же формат, что и DBTYPE_IUNKNOWN. Представляет собой указатель на объект в буфере данных. Чтобы определить полную спецификацию в привязках, потребитель заполняет буфер DBOBJECT, задавая для параметра iid один из интерфейсов объекта набора строк (IID_IRowset). Если объект DBOBJECT в привязках не указан, то предполагается использование объекта IID_IRowset.

Прямые и обратные преобразования в тип DBTYPE_TABLE для каких-либо других типов не поддерживаются. Метод IConvertType::CanConvert возвращает значение S_FALSE для неподдерживаемого преобразования применительно к любому запросу, отличному от преобразования DBTYPE_TABLE в DBTYPE_TABLE. При этом предполагается использование параметра DBCONVERTFLAGS_PARAMETER объекта Command.

Методы

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

Свойства

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

См. также:

Возвращающие табличное значение параметры (OLE DB)
Использование возвращающих табличные значения параметров (OLE DB)