表值参数类型发现
适用于: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 行集。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈