当前位置: 代码迷 >> PB >> 关于datawindow.update()是与此同时更新多条记录
  详细解决方案

关于datawindow.update()是与此同时更新多条记录

热度:69   发布时间:2016-04-29 07:42:08.0
关于datawindow.update()是同时更新多条记录
问题描述:
循环读取dw_proc_temp中的数据,然后根据pkid到dw_proce_plan中retrieve(),然后dw_proce_plan.update()
这时dw_proce_plan只是跟新了最后一条记录,现在我想dw_proce_plan.retrieve()时保留上一次的结果,最后更新时更新多条记录,我该怎么做?
for ll_i = 1 to dw_proc_temp.rowcount( )
ls_give_part_pkid = dw_proc_temp.getitemstring( ll_i, 'pk_id')
ll_find = dw_proce_plan.retrieve(ls_give_part_pkid)
dw_proce_plan.setitem( ll_find, 'finish_num', dw_proc_temp.getitemdecimal( ll_i, 'finish_num') )
dw_proce_plan.setitem( ll_find, 'stuff_dross_num', dw_proc_temp.getitemdecimal( ll_i, 'stuff_dross_num') )
dw_proce_plan.setitem( ll_find, 'process_dross_num', dw_proc_temp.getitemdecimal( ll_i, 'process_dross_num') )
dw_proce_plan.setitem( ll_find, 'different_num', dw_proc_temp.getitemdecimal( ll_i, 'different_num') )

next

if dw_proce_plan.update( ) <> 1 then
rollback;
messagebox('系统提示','退回操作更新工序计划失败!')
return 
else
commit;
end if
------解决方案--------------------
RetrieveStart事件中,使用Return 2
------解决方案--------------------
引用:
RetrieveStart事件中,使用Return 2

这个应该可以了。
------解决方案--------------------
update属性里选key columns试试
其实这个update可以放在数据库里做,效率还高
------解决方案--------------------
1 后台放在触发器或存储过程里
2 可以在家加个和dw_proce_plan一样的数据窗口作更新用
------解决方案--------------------
引用:
引用:
update属性里选key columns试试
其实这个update可以放在数据库里做,效率还高


几种组合都是了,应该是生成多条update 语句,但是,只是生成了一条

根据你的表述,似乎其他行的更新标志已经被重置了
  相关解决方案