当前位置: 代码迷 >> PB >> 动态语句有关问题
  详细解决方案

动态语句有关问题

热度:87   发布时间:2016-04-29 09:44:16.0
动态语句问题
ls_sql = "select itemno from itemdata where "+ls_where  
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC cursor_base;
FETCH cursor_base INTO :ls_itemno;
close cursor_base ;

如上的语句,执行的事实 ,sqlca.sqlcode = 100 ,单独在数据库里执行发现是对的,可以查询 
为什么动态语句就为 100 ,望解,谢谢

------解决方案--------------------
Value Meaning
0 Success.
100 Fetched row not found.
-1 Error; the statement failed. Use SQLErrText or SQLDBCode to obtain the detail.
------解决方案--------------------
取不到数,说明 条件不对!建议用messagebox('',ls_sql) 看一下具体语法
------解决方案--------------------
应该是 ls_where条件的问题!
------解决方案--------------------
=100表示取不到數據,很可能是SQL的條件有問題
------解决方案--------------------
猜猜看
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA ;
ls_sql = "select itemno from itemdata where "+ls_where 
PREPARE SQLSA FROM :ls_sql; 
OPEN DYNAMIC cursor_base; 
FETCH cursor_base INTO :ls_itemno; 
close cursor_base ; 


------解决方案--------------------
你在哪个位置判断sqlca.sqlcode ?
ls_sql的值是什么? ls_where的值是多少?
------解决方案--------------------
估计是ls_where有问题
  相关解决方案