准备的语句的表值参数元数据
应用程序可以通过 SQLNumParams 和 SQLDescribeParam 获取已准备过程调用的元数据。 对于表值参数, DataTypePtr 设置为 SQL_SS_TABLE。 可通过 SQLGetDescField 获取其他元数据,用于SQL_CA_SS_TYPE_NAME、SQL_CA_SS_CATALOG_NAME和SQL_CA_SS_SCHEMA_NAME。
SQL_CA_SS_TYPE_NAME、SQL_CA_SS_CATALOG_NAME和SQL_CA_SS_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_CATALOG_NAME 和 SQL_CA_SS_SCHEMA_NAME 用于 CLR 用户定义类型参数。
无法获取非存储过程调用的准备的语句的表值参数元数据。 如果试图这样做,应用程序将返回错误代码为 SQLSTATE 42000 的 SQL_ERROR,以及消息“语法错误或访问冲突”。