如果您在运行时不知道要提供的返回值的数量或其数据类型,则可将输出值与系统描述符区域相关联。系统描述符区域描述一个或多个值的数据类型和内存位置。
系统描述符区域符合 X/Open 标准。
要指定系统描述符区域为输出值的位置,请使用 EXECUTE 语句的 INTO SQL DESCRIPTOR 子句。每次运行 EXECUTE 语句时,系统描述符区域所描述的值都存储在系统描述符区域中。
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 程序员手册 中关于系统描述符区域的讨论。