如果您不知道在运行时要提供的参数的数目及其数据类型,则可从系统描述符区域关联输入值。系
统描述符区域描述要代替问号(
?)占位符的一个或多个值的数据类型和内存位置。
系统描述符区域符合 X/Open 标准。
使用 SQL DESCRIPTOR 关键字来引入系统描述符区域的名称作为参数的位置。
系统描述符中的 COUNT 字段对应于准备好的语句中的动态参数的数目。COUNT 的值必须小于
或等于当以 ALLOCATE DESCRIPTOR 语句分配系统描述符区域时指定的项描述符的数目。您可
以 GET DESCRIPTOR 语句获取字段的值,并以 SET DESCRIPTOR 语句设置该值。
下列示例展示 OPEN … USING SQL DESCRIPTOR 语句:
EXEC SQL allocate descriptor ‘desc1’;
…
EXEC SQL open selcurs using sql descriptor ‘desc1’;
正如该示例显示的,在 OPEN 语句中引用系统描述符区域之前,您必须分配它。
指定指向 sqlda 结构的指针(ESQL/C)
如果您不知道在运行时要提供的参数的数目,或其数据类型,可从 sqlda 结构关联输入值。sqlda
结构罗列要替代问号(?)占位符的一个或多个值的数据类型和内存位置。
使用 DESCRIPTOR 关键字来引入指向 sqlda 结构的指针,作为参数的位置。
sqlda 值指定在 sqlvar 的并发中描述的输入值的数目。此数目必须对应于准备好的语句中的动态
参数的数目。
指定指向 sqlda 结构的指针的示例
下列示例展示 OPEN … USING DESCRIPTOR 语句:struct sqlda *sdp;
…
EXEC SQL open selcurs using descriptor sdp;