准备的语句的表值参数元数据

应用程序可以通过 SQLNumParamsSQLDescribeParam 获取准备的过程调用的元数据。对于表值参数,DataTypePtr 设置为 SQL_SS_TABLE。可以通过 SQLGetDescField 为 SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 获取其他元数据。

可将 SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 与 SQLColumns 一同使用,以获取与表值参数关联的表类型的列元数据。在此情况下,必须在调用 SQLColumns 之前将 SQL_SOPT_SS_NAME_SCOPE 设置为 SQL_SS_NAME_SCOPE_TABLE_TYPE。在应用程序检索完表值参数列元数据之后,应将 SQL_SOPT_SS_NAME_SCOPE 设置回原来的默认值 SQL_SS_NAME_SCOPE_TABLE。

也可以将 SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 用于 CLR 用户定义类型参数。

无法获取非存储过程调用的准备的语句的表值参数元数据。如果试图这样做,应用程序将返回错误代码为 SQLSTATE 42000 的 SQL_ERROR,以及消息“语法错误或访问冲突”。

请参阅

概念