当前位置: 代码迷 >> PB >> 关于同时更新多个数据表,该如何处理
  详细解决方案

关于同时更新多个数据表,该如何处理

热度:146   发布时间:2016-04-29 09:14:35.0
关于同时更新多个数据表
if dw_2.update() = 1 then
commit using sqlca;
update a set sl = '5' where dm = :ls_dm;
messagebox('提示','数据保存成功!')
else
rollback using sqlca;
messagebox('提示','数据保存失败!')
end if

如果当程序执行到 commit using sqlca;
出现其他情况没有执行 update a set sl = '5' where dm = :ls_dm;

怎么才能够做到让数据保持一致呢?

------解决方案--------------------
探讨
if dw_2.update() = 1 then
commit using sqlca;
update a set sl = '5' where dm = :ls_dm;
messagebox('提示','数据保存成功!')
else
rollback using sqlca;
messagebox('提示','数据保存失败!')
end if

如果当程序执行到 commit……

------解决方案--------------------
探讨
是不是update后没有 commit using sqlca;
也不会更新数据?

------解决方案--------------------
探讨
是不是update后没有 commit using sqlca;
也不会更新数据?

------解决方案--------------------
if dw_2.update() <> 1 then
rollback using sqlca;
messagebox('提示','数据保存失败!')
return
end if

update a set sl = '5' where dm = :ls_dm;

if sqlca.sqlcode = -1 then
rollback using sqlca;
messagebox('提示','数据保存失败!')
return
end if

commit using sqlca;
messagebox('提示','数据保存成功!')




------解决方案--------------------
如果你的数据库支持触发器的话,最好用触发器来实现。这样可以少搞些PB代码的判断。
  相关解决方案