高手捡分, 事务的完整性

xirumin 2002-07-24 03:57:06
我要同时更新三个相互关联的表, 怎样维护数据的一致性, 我现在用的是
//autocommit = false
if dw_1.update() = 1 and dw_2.update() = 1 and ... then
commit;
else
rollback;
end if

我想知道用sql语句怎样写?
update t_1 set ....;
update t_2 set ....;
update t_3 set ....;

...全文
33 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
derris 2002-07-28
  • 打赏
  • 举报
回复
pb默认一个SQLCA的事物服务,每次COMMIT(其实是缩写,默认为COMMIT USING SQLCA,你可以设置多个事物。)都会提交当前客户端的操作到上次COMMIT的CHECK POINT。
xirumin 2002-07-25
  • 打赏
  • 举报
回复
是否就是说, 一次commit后的语句都做为一个事务, 直到有新的commit或rollback来?
derris 2002-07-24
  • 打赏
  • 举报
回复
不会的。rollback到上次COMMIT的地方。
szpqq 2002-07-24
  • 打赏
  • 举报
回复
在PB中rollback,commit是否有用,有时就是rollback了,他还是做了更新
c_g 2002-07-24
  • 打赏
  • 举报
回复
楼上的别忘了rollback;
update t_1 ……
if sqlca.sqlcode = 0 then
update t_2 ……
if sqlca.sqlcode = 0 then
update t_3……
if sqlca.sqlcdoe = 0 then
commit using sqlca;
else
rollback;
return
end if
else
rollback;
return
end if
else
rollback;
return
end if
joss 2002-07-24
  • 打赏
  • 举报
回复
手头有SQL书吗?
里面尽是这些东东!!
pbworm 2002-07-24
  • 打赏
  • 举报
回复
update t_1 ……
if sqlca.sqlcode = 0 then
update t_2 ……
if sqlca.sqlcode = 0 then
update t_3……
if sqlca.sqlcdoe = 0 then
commit using sqlca;
end if
end if
end if

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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