表值参数类型发现(OLE DB 驱动程序)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

下载 OLE DB 驱动程序

如果命令文本已提供给 OLE DB 提供程序,使用者(即使用 OLE DB Driver for SQL Server 的客户端应用程序)可以发现每个命令参数的类型。 了解表值参数的类型之后,使用者可以发现表值参数各列的元数据信息。

对于多数参数类型,ICommandWithParameters::GetParameterInfo 都支持过程参数的类型信息。 从 SQL Server 2005 (9.x) 开始,随着用户定义类型和 xml 数据类型的引入,由于无法通过 ICommandWithParameters 提供用户定义类型信息(名称、架构和目录),GetParameterInfo 方法不再能够完全满足此目的 。 因此,定义了一个新接口 ISSCommandWithParameters 来提供扩展类型信息。

对于表值参数,同样使用 ISSCommandWithParameters 接口发现详细信息。 在准备好命令对象之后,客户端调用 ISSCommandWithParameters::GetParameterInfo。 对于表值参数,访问接口将 DBPARAMINFO 结构的 wType 成员设置为 DBTYPE_TABLE 。 DBPARAMINFO 结构的 ulParamSize 字段的值为 ~0 。

使用者随后使用 ISSCommandWithParameters::GetParameterProperties 请求获取附加属性(表值参数类型目录名称、表值参数类型架构名称、表值参数类型名称、列排序和默认列)。

了解类型名称之后,要检索各个列信息,使用者必须调用 IOpenRowset::OpenRowsetor ,或者通过将表值参数类型名称指定为表名来获取 DBSCHEMA_TABLE_TYPE_COLUMNS 行集。

另请参阅

表值参数 (OLE DB)
使用表值参数 (OLE DB)