首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

没有查询到记录为何SQLCA.SQLCODE=100?该如何处理

2012-03-30 
没有查询到记录为何SQLCA.SQLCODE100?select A.ID,A,XM,B.DW FROM A ,B WHERE A.IDB.XMID AND B.ID100

没有查询到记录为何SQLCA.SQLCODE=100?
select A.ID,A,XM,B.DW FROM A ,B WHERE A.ID=B.XMID AND B.ID>100;
CONNECT;
DECLARE MY_CUR dynamic CURSOR FOR SQLSA;
PREPARE SQLSA FROM :SQLSTR;
DESCRIBE SQLSA INTO SQLDA;
open dynamic my_cur USING DESCRIPTOR SQLDA;
//若查询失败
IF SQLCA.SQLCODE<0 THEN  
  RETURN ''
END IF

IF SQLCA.SQLCODE=100 THEN  
  RETURN '100'
ELSE
  RETURN 'ABC'
END IF
————————————————————————————————————

  现在查询结果为空(用“select count(*) FROM A ,B WHERE A.ID=B.XMID AND B.ID>100;”,显示count(*)值为“0”)。但是,返回值却是“100”。

  为什么呢?

  是不是我执行了两遍“SQLCA.SQLCODE”的缘故呢?
 

[解决办法]
不fetch其实没有执行select呢
你就直接fetch,
然后判断sqlca.sqlcode,在100那个分支写 (执行其他语句)

[解决办法]
可以在=0的分支做个变量累加,在100那个分支判断这个变量有没有增加
有就是执行到最后了
没有增加就是没数据,走你那个执行其他语句

热点排行