如何控制多个事务?(BDE的事务控制有点棘手)

dth_ljb 2003-08-19 12:03:03
在一个MDI数据库应用程序中,我的所有的Table,Query都是连接的同一个Database。当某个MDI子窗体中的数据被修改,开始了一个事务,但还没有结束的时候,如果打开另外一个子窗体,也就不能再启动一个新的事务了,因为一个Database在一次会话中只能启动一个事务。有没有办法解决呢?
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dth_ljb 2003-08-19
  • 打赏
  • 举报
回复
Applyupdate之后的记录已经写到数据库,只是当你rollback时DBMS能够根据回滚段或检查点将其撤销。CancelUpdates能将其撤销吗?我试一试吧,估计是不能够的。
DWGZ 2003-08-19
  • 打赏
  • 举报
回复
那在这之前的修改就无法rollback了???
把它们CacheUpdates设为True;
在客户端回退CancelUpdates
dth_ljb 2003-08-19
  • 打赏
  • 举报
回复
是吗?当操作员已经修改了数据,我必须及时调用applyupdate(特殊要求得这么做),但是等到要提交的时候才开始事务,那在这之前的修改就无法rollback了。是不是这么回事啊?
DWGZ 2003-08-19
  • 打赏
  • 举报
回复
事务只有在真正需要提交数据时才用你不要一修改就开始事务天啊如果这样。。。。。。。。。。
Firec 2003-08-19
  • 打赏
  • 举报
回复
据说还有个办法是多加几个TSession,不过我没用过不知道。
dth_ljb 2003-08-19
  • 打赏
  • 举报
回复
问题是如果applyupdate之前不开始事务,那已经update了的数据就无法回滚了啊。
具体说明一些吧,我的程序是在两棵树中显示数据,将一个树枝从一边拖放到另一边后数据就改变了,这时候我马上要重新倒数据库检索数据重新生成这两棵树,如果不及时Applyupdates的话,就读不到刚才的修改,而在applyupdates之前不开始事务的话,这些修改又无法回滚。想点办法啊?
zhangjun025 2003-08-19
  • 打赏
  • 举报
回复
多加几个database控制事务罗
DWGZ 2003-08-19
  • 打赏
  • 举报
回复
我的意思是说在你还没提交之前是可以取消操作的,

提交就是那么一下你总不会在操作员还在更改数据的时候就开始事务了吧
dth_ljb 2003-08-19
  • 打赏
  • 举报
回复
帮忙啊!

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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