表值参数类型发现

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

使用者即使用 SQL Server Native Client OLE DB 访问接口的客户端应用程序可以在向 OLE DB 提供程序提供命令文本的情况下发现每个命令参数的类型。 了解表值参数的类型之后,使用者可以发现表值参数各列的元数据信息。

对于多数参数类型,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)