关于ClientDataSet的ApplyUpdate(0)的事务问题,一个月了,难道没人比我研究的更深吗? (50分)

  • 主题发起人 主题发起人 yongz125
  • 开始时间 开始时间
Y

yongz125

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下结构:
try
adoconn.begin
trans;
clientdataset.applyupdate(0);
.....
adoconn.committrans
except
adoconn.rollbacktrans
end;
在clientdataset.applyupdate(0)执行完后事务就没了,怎么去调clientdataset的事务,或者让它的事务听从我程序调用的事务。用datasetprovider也是一样。怎么办?
 
clientdataset有事務嗎?
如果是cs結構,調用database組件開啟事務
如果是midas結構,需先在中間層定義三個方法來調用中間層txxxconnection組件的控制事務的方法,然后客戶端調用中間層的方法來控制事務
 
我早就试过了,只要有clientdataset.applyupdate(0),成功则事务提交,失败则回滚,显示调用的事务没了。
 
好象是这样的, 只支持单层事务, 你调用 ClientDataSet时, 又会引发一个新的begin
trans;所以, 就将外层的取消了!
 
对,三层结中无事务.
 
如果是基于COM+或者MTS的三层结构是可以直接支持事务的。
 
?? 似乎是没有指定的事务名称,所以将原来的那个事务提交了..
就好像你写存储过程的时候:你的一个存储过程调用一个存储过程,那个事务要换成别的名字才行!!
 
clientdataset.applyupdate(0);本来就有一个事务了。
 
不要使用 ApplyUpdates 方法,你可以看我的帖子,里面有
详细的对Delta 的处理!
 
把你的电子信箱给我,我传资料给你。
 
yongz125@263.com
 
多人接受答案了。
 
后退
顶部