SQLDA 标题

SQLDA标头中的字段有不同的用法,具体取决于SQLDA是在DESCRIBE或PREPARE INTO语句中使用,还是在FETCH、INSERT、OPEN、EXECUTE或CALL语句中使用。

下表描述了SQLDA标头中的字段。

表 1. SQLDA标头字段
C
名称汇编器,
COBOL 或
PL/I 名称
数据
类型
在描述1
和准备进入时使用
在FETCH、INSERT、OPEN、EXECUTE和CALL中的用法
sqldaid
SQLDAID
CHAR(8)

堆放的物品引人注目

对于描述输出或描述输入, Db2 将前6个字节设置为“SQLDA”(五个字母后跟空格字符),第七个字节设置为空格字符或一个数字,表示所需的SQLVAR条目数,第八个字节设置为空格字符。

有关SQLDAID的第7个字节如何使用的详细信息,请参阅 《确定所需SQLVAR实例的数量 》。

对于描述光标,字段设置为“SQLRS”。 若在存储过程中声明光标为WITH HOLD,则第8字节的高位将被设置为1。

对于描述程序,它被设置为“SQLPR”。

第六字节中的加号(+)(例如,前六个字节包含'SQLDA+')表示SQLNAME字段包含一个覆盖CCSID。

第7字节中的'2'表示为每个列或参数分配了两个SQLVAR条目。

第7字节中的'3'表示为每个列或参数分配了三个SQLVAR条目。 虽然输入到 Db2 时永远不需要三个条目,但当SQLDA由带有USING BOTH子句的DESCRIBE或PREPARE INTO初始化时,可能会使用带有三个条目的SQLDA。

否则,SQLDAID字段将不被使用。

sqldabc
SQLDABC
INTEGER SQLDA的长度,等于 SQLNx * 44+16 SQLDA的长度大于或等于 SQLNx * 44+16
SQLN
SQLN
SMALLINT Db2 不变。 在执行语句之前,必须将字段设置为大于或等于零的值。 字段显示SQLVAR出现的总次数。 至少应该为:
  • 对于“描述输入”,要描述的参数标记的数量。
  • 对于其他描述或准备:结果的列数,或者当有多个SQLVAR条目时,结果的列数的倍数,因为除了列名之外,还会返回列标签。
SQLDA中提供的SQLVAR的总出现次数。 SQLN的值必须大于或等于零。
sqld
SQLD
SMALLINT SQLVAR出现的列数。 如果“同时使用”出现在“描述”或“准备放入”语句中,则数量加倍。 如果语句字符串不是查询,则包含0。

对于描述过程,存储过程返回的结果集的数量。 如果没有返回结果集,则包含0。

SQLVAR出现的宿主变量数量。
注:
  1. 此表的第三列代表了几种DESCRIBE语句的形式: