当前位置: 代码迷 >> PB >> 如何停止commit
  详细解决方案

如何停止commit

热度:38   发布时间:2016-04-29 09:42:46.0
怎么停止commit
if dw_1.udpate()=1 then
  commit;
else
  rollback;
end if
如果dw_1的数据量很大,commit会有很长时间的等待,我想实现用户可以控制停止commit有什么办法没?

------解决方案--------------------
.....
分批操作

比如10000 条数据,
你100条commit一次,不就好了

但是不能用update()
你自己手动的update or insert
这个都可以通过row的state来确定的
------解决方案--------------------
不能。commit时间很短的,倒是update时间较长。分批循环update,不行就回滚。不过这样对数据窗口的控制会麻烦些。
------解决方案--------------------
研究了一个上午,终于找到了

在datawindow的sqlpreview事件上可以做,代码:
yield()
if ib_stopcommit then return 1 //ib_stopcommit实例变量

再加一个按钮写上
ib_stopcommit=ture

再加上dberror事件
return 1

大功已告成

探讨
if dw_1.udpate()=1 then
  commit;
else
  rollback;
end if
如果dw_1的数据量很大,commit会有很长时间的等待,我想实现用户可以控制停止commit有什么办法没?
  相关解决方案