OLE DB 表值参数类型支持

本主题介绍了表值参数的 OLE DB 类型支持。

表值参数行集对象

您可以创建表值参数的专用行集对象。可以使用 ITableDefinitionWithConstraints::CreateTableWithConstraintsIOpenRowset::OpenRowset 创建表值参数行集对象。为此,请将 pTableID 参数的 eKind 成员设置为 DBKIND_GUID_NAME 并提供 CLSID_ROWSET_INMEMORY 作为 guid 成员。使用 IOpenRowset::OpenRowset 时,必须在 pTableID 的 pwszName 成员中指定表值参数的服务器类型名称。表值参数行集对象行为与常规 SQL Server Native Client OLE DB Provider 对象类似。

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 表示表类型。该类型在需要 DBTYPE 的多个 OLE DB 接口中指定了表值参数。

#define DBTYPE_TABLE (143)

DBTYPE_TABLE 具有与 DBTYPE_IUNKNOWN 相同的格式。它是指向数据缓冲区中某个对象的指针。为完成绑定中的规范,使用者应填充 DBOBJECT 缓冲区,并将 iid 设置为行集对象接口 (IID_IRowset) 中的一个。如果绑定终未指定 DBOBJECT,则将假定为 IID_IRowset

不支持任何其他类型转换为 DBTYPE_TABLE 或从 DBTYPE_TABLE 转换为任何其他类型。对于从 DBTYPE_TABLE 转换为 DBTYPE_TABLE 的转换之外的请求,IConvertType::CanConvert 将对不支持的转换返回 S_FALSE。这将假定对 Command 对象进行 DBCONVERTFLAGS_PARAMETER 转换。

方法

有关支持表值参数的 OLE DB 方法的信息,请参阅OLE DB 表值参数类型支持(方法)

属性

有关支持表值参数的 OLE DB 属性的信息,请参阅OLE DB 表值参数类型支持(属性)

请参阅

概念