SQLDA 标题
SQLDA标头中的字段有不同的用法,具体取决于SQLDA是在DESCRIBE或PREPARE INTO语句中使用,还是在FETCH、INSERT、OPEN、EXECUTE或CALL语句中使用。
下表描述了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出现的总次数。 至少应该为:
|
SQLDA中提供的SQLVAR的总出现次数。 SQLN的值必须大于或等于零。 |
sqld
SQLD |
SMALLINT | SQLVAR出现的列数。 如果“同时使用”出现在“描述”或“准备放入”语句中,则数量加倍。 如果语句字符串不是查询,则包含0。 对于描述过程,存储过程返回的结果集的数量。 如果没有返回结果集,则包含0。 |
SQLVAR出现的宿主变量数量。 |