关于问题"DATAWINDOW DOES NOT HAVE UPDATE CAPABILITY"

rubenruben 2006-09-11 08:49:17
各位高手:

我在执行下列代码时,出现上面的错误,请问怎样解决?(在调试到此语句时,出现的这个错误;if update(dw_2,true, false) = 1 then)

select mate_num,mate_completed_num into :order_mate_num,:order_completed_num
from order_mate_2 where order_no=:order_no and mate_no=:mate_no;
if isnull(order_completed_num) then
order_completed_num = 0
end if
mate_yes_num =order_mate_num - order_completed_num


if mate_in_num > mate_yes_num then
temp_num = mate_in_num - mate_yes_num
flag = messagebox("提示","编号为"+qc_id+"的材料入库数大于实际订购数量"+string(temp_num)+"个,是否继续入库?",question!,yesno!)
if flag = 1 then //进行入库
dw_2.setitem(i,"is_mate_in","是")
dw_2.setitem(i,"mate_in_num",mate_yes_num) //自动将入库数改小
real_mate_in = mate_yes_num
else
return //用户决定不入库了,因为材料大于了订购数量
end if
else
dw_2.setitem(i,"is_mate_in","是")
real_mate_in = mate_in_num
end if


if update(dw_2,true, false) = 1 then
dw_2.resetupdate()
commit using sqlca;
//对应每一条入库记录都要到order_mate_1中修改入库数量
dw_2.rowsdiscard(i,i,primary!)//将已入库的从窗口中去除

i= i - 1 //这两句用于将记录移走了后,后面记录的行号要变的
row_count = row_count - 1

//从材料订单2中加上入库数量
//real_mate_in += order_completed_num
update order_mate_2 set mate_completed_num=
...全文
1366 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你的数据窗口是动态的,需要动态的设置一下数据窗口的更新属性!
todayxyz 2006-09-12
  • 打赏
  • 举报
回复
如果对数据窗口用过 of_retrieve()函数,出现这样的问题,把of_retrieve() 换成其他的比如retrieve(),f_datawindow_retrieve() 即可
dawugui 2006-09-11
  • 打赏
  • 举报
回复
楼上正解
lionkings 2006-09-11
  • 打赏
  • 举报
回复
你的代码书写不标准 标量名应该学Sybase撰写规范啊 看得我眼都花。 不管怎么样,你的这个问题提示应该是 你的datawindow的update属性没有了,把它设回来就是了。步骤:打开datawindow,在画板的menu上选rows\update properties...\Allow updates -> ....勾上选上就可以了

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧