将值保存在系统描述符区域中

如果您在运行时不知道要提供的返回值的数量或其数据类型,则可将输出值与系统描述符区域相关联。系统描述符区域描述一个或多个值的数据类型和内存位置。

系统描述符区域符合 X/Open 标准。

要指定系统描述符区域为输出值的位置,请使用 EXECUTE 语句的 INTO SQL DESCRIPTOR 子句。每次运行 EXECUTE 语句时,系统描述符区域所描述的值都存储在系统描述符区域中。

下列示例展示如何使用系统描述符区域来执行 GBase 8s ESQL/C 中的准备好的语句:
EXEC SQL allocate descriptor 'desc1';
...
sprintf(sel_stmt, "%s %s %s", 
   "select fname, lname from customer",
   "where customer_num =",
   cust_num);
EXEC SQL prepare sel1 from :sel_stmt;
EXEC SQL execute sel1 into sql descriptor 'desc1';

COUNT 字段对应于准备好的语句返回的值的数量。COUNT 的值必须小于或等于当以 ALLOCATE DESCRIPTOR 语句分配系统描述符区域时所指定的发生次数的值。

你可以 GET DESCRIPTOR 语句获取域的值,并以 SET DESCRIPTOR 语句设置该值。

要获取更多信息,请参阅 GBase 8s ESQL/C 程序员手册 中关于系统描述符区域的讨论。