使用 sqlda 结构

在您不知道 SELECT 或 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句返回的值的数量或其数据类型时,可使用指向 sqlda 结构的指针来存储输出值。

此结构包含为一个选择的值指定数据类型和内存位置的数据描述符。关键字 USING DESCRIPTOR 引入指向 sqlda 结构的指针。
提示: 如果您知道在选择列表中所有值的数量和数据类型,则可使用 FETCH 语句中的 INTO 子句。要获取更多信息,请参阅 在需要 FETCH 的 INTO 子句时

要指定 sqlda 结构作为参数位置:

  1. 声明 sqlda 指针变量。
  2. 使用 DESCRIBE 语句来填充 sqlda 结构。
  3. 分配内存来保留数据值。
  4. 使用 FETCH 的 USING DESCRIPTOR 子句来指定 sqlda 结构作为您访存返回值的目标位置。
下列示例展示 FETCH USING DESCRIPTOR 语句:
struct sqlda *sqlda_ptr;
...
EXEC SQL declare selcurs2 cursor for 
   select * from customer where state = 'CA';
EXEC SQL describe selcurs2 into sqlda_ptr;
...
EXEC SQL open selcurs2;
while (1)
   {
   EXEC SQL fetch selcurs2 using descriptor sqlda_ptr;
   ...

sqld 值指定 sqlda 结构的 sqlvar 结构的出现个数中描述的输出值的数量。此数量必须对应于从准备好的语句返回的值的数量。