SQLDescribeParam 是一个 ODBC API,它返回查询参数的元数据。 在较早版本的 GBase 8s ODBC Driver 中,如果调用 API 来取得关于嵌入在另一例程内 的表达式值或参数的信息,SQLDescribeParam API 返回 SQL_UNKNOWN。对于 BOOLEAN、 LVARCHAR, 或由其他 UDR 中下列表达式返回的内置的非 opaque GBase 8s 数据类型,此限制不再适用: • 二进制算术表达式 o 加(+) o 减(-) o 乘(*) o 除(/) • 关系运算符表达式 o 小于(<) o 小于或等于(<=) o 等于(=、==) o 大于或等于(>=) o 大于(>) o 不等于(<>、!=) • 下列字符串运算 o 串联(||) o MATCHES o LIKE • BETWEEN ... AND 条件表达式 例如,如果列 tab1.c1 是 INT 数据类型,则 SQLDescribeParam() 为下列查询的输入主 变量返回类型 int: select c1, c2 from tab1 where ABS(c1) > ?; 来自表达式另一侧的 UDR 可以是列表达式或内置的例程,但它不可以是用户定义的例 程。在较早的版本中,在下列情况下,SQLDescribeParam API 为嵌入在另一过程中的表 达式值和参数返回 SQL_UNKNOWN: l 表达式的另一侧的值为用户定义的例程。 l 同一表达式的另一运算对象是用户定义的例程。
GBase 8s ODBC Driver 程序员指南 南大通用数据技术股份有限公司 - 28 -
l 表达式的任何运算对象的数据类型不是 BOOLEAN、LVARCHAR 或内置的非 opaque 数据类型。