注册 登录
编程论坛 PowerBuilder

一个涉及某个数据窗口多行修改且多表更新保存的问题

jump2003 发布于 2006-05-22 20:50, 859 次点击

if dw_1.update()=1 then
ls_xm=dw_1.getitemstring(g_rownumber,1)
select Nvl(mwd_zggrzhxxk.gzljje,0),Nvl(mwd_zggrzhxxk.dqgzje,0) into :lj_gzje,:dq_gzje from mwd_zggrzhxxk
where mwd_zggrzhxxk.xm = :ls_xm;

ll_kjje=dw_1.getitemnumber(g_rownumber,"kjje")

lj_gzje=lj_gzje + ll_kjje
dq_gzje=dq_gzje + ll_kjje

update mwd_zggrzhxxk set gzljje=:lj_gzje,dqgzje=:dq_gzje
where mwd_zggrzhxxk.xm = :ls_xm;

commit;
dw_1.retrieve()
else
rollback;
messagebox("错误","数据保存失败!")
end if

这样是实现当前行更新,现在我要让整个数据窗口里所有修改的行都实现更新,好象这个循环也不好写啊,是不是该利用数据窗口的modify属性来判断哪些列发生了改变从而来实现所有修改行更新啊?数据窗口的modify行怎么取啊?哪位好心人帮我提示一下啊,跪谢了!

2 回复
#2
jump20032006-05-23 08:32
没人指点一下思路吗?呜~~~~~~~
#3
ヤ順祺冄繎ヤ2006-05-23 09:14
你可以用一个Datastore,
你在一个DW里修改后,再用datastore与DW相比较,看修改了那些行,再用datastore来更新DW.
1