sql.sqlnrows在什么情况下会返回-2
最近将一个数据库从sql server2000下移植到sql anywhere9下,可是意外确发生了,在一些判断sqlca状态的语句处用到sqlnrows总是返回-2
语句如下
SELECT isnull ( spare_cash , '' ) INTO :ls_spare_cash FROM t_vip_info WHERE vip_status <> '0' and vip_no =:as_vip_no USING sqlca;
//上面语句返回1正常
SELECT card_no , card_dispno , IsNull ( is_saving , '0' ) INTO :ls_card_no, :ls_card_dispno, :ls_is_saving FROM t_vipcard_info WHERE vip_no =:as_vip_no and card_status ='2' USING sqlca;
//这个语句返回-2请问错在哪里?
[解决办法]
is_saving 是变量吗
[解决办法]
看一下SQLErrText
[解决办法]
怀疑你的select返回多行了,select语句返回一行数据是正确的,如果返回多行数据的话,需要用游标或者数据窗口来实现
改成以下代码看一下
long ll_cnt
SELECT count(1) INTO :ll_cnt
FROM t_vipcard_info
WHERE vip_no =:as_vip_no and card_status ='2' USING sqlca;
messagebox('', ll_cnt)
[解决办法]
回去也试试!
[解决办法]
SQLNRowsLongThe number of rows affected (the database vendor supplies this number, so the meaning might not be the same in every DBMS).
这个参数的值跟数据库相关,不同数据库供应商是不一样的,你得了解 sql anywhere9 的参数
[解决办法]