当前位置: 代码迷 >> PB >> 关于游标有关问题,小弟我写了这个游标,一直取不到值。痛苦找不到原因
  详细解决方案

关于游标有关问题,小弟我写了这个游标,一直取不到值。痛苦找不到原因

热度:22   发布时间:2016-04-29 08:39:59.0
关于游标问题,我写了这个游标,一直取不到值。痛苦找不到原因。
declare lcursor cursor for 
select ceil(length(msg)/60),msgid,callno,msg,senddate
from MSG
where nvl(usestatus,0)=2 and substr(msg,1,6)='短信test' and substr(callno,0,7) 
not in (select mobile from zx_cmt_mobile where province ='浙江') 
 using hdyyxyweb;
open lcursor;
lb_continue=true
ll_total=0
do while lb_continue
  fetch lcursor into :lmsglines,:lmsgid,:lcallno,:lmsg,:lsenddate;
vcount=1
if hdyyxyweb.sqlcode =0 then
   
for li=1 to lmsglines
lj=60 * li - 59 //拆分开始位置,每条短信为60个字符
 
llmsg=mid(lmsg,lj,60) + string(li) + '/' + string(lmsglines) //显示页码
insert into sms_sendtest(msgid,mobile,content,plan_time,id)
values(:lmsgid,:lcallno,:llmsg,:lsenddate,1)
  using hdyyxyweb;

vcount++

  next
  else 
rollback using hdyyxyweb;
lb_continue=false
setmle("发送数据库操作失败")

return false
end if
   
loop;


以上是我写的一个游标,但是sms_sendtest始终取得不到插入的值 ,运行后,直接:提示setmle("发送数据库操作失败")。
if hdyyxyweb.sqlcode =0 then 是不是这个不成立?
请高手指点一下。

------解决方案--------------------
debug 可以看得一清二楚啊
------解决方案--------------------
你可以调试,看游标取到值了没 lmsglines,:lmsgid,:lcallno,:lmsg,:lsenddate
------解决方案--------------------
探讨
主要是没有取到值,不知道什么原因,是不是,我写的有问题?

------解决方案--------------------
建议换游标成DataStore ...
  相关解决方案