关于TADOConnection的事务处理问题?急!急!急!!!(100分)

Y

YAMAHA

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi5的TADOConnection连接SqlServer7,有3个TADOQuery控件都公用这个连接
一个是查询,一个是删除,一个是新增,都对一个表操作,要求实现事务处理。问题
很简单吧,不过我试了一下:先删除一条记录,查询确认已经删掉,然后增加一条,
查询结果时发现被删除的记录还在,提交事务后再查询发现根本没有删掉。试了几种
执行顺序,发现只有最后一个Query的操作能提交,前面的Query都被回滚,怀疑是那里
没有设对,请各位大虾指点迷津!
 
感觉上应该先在事务开始时,写开始事务的语句(begintran...),最后全部
完成后提交。
 
1.其实你只需要一个TADOQuery组件;
2.检查你的事务包括了的操作。
就是这样……
 
pengjing:
不好意思,写的不是很清楚,我是有用beginTrans的。
zzutlink:
其实我的真正要求是在自建类的方法中动态创建TADOQuery,发现事务处理无效。
于是做了一个简单的例子(如上所述)进行测试,结果发现事务还是无效。我的例子
是很简单的,语句都是最简单的查询、删除和新增,而且单独执行时都是可以的。
请各位大虾鼎力相助。拜托了。
 
我觉得事务这么重要的东西,应该不会不支持的,肯定是我那里的设置不对,
请各位大虾及斑竹帮小弟一个忙吧?
 
我试过,没有一点问题的啊!
 
zengr:
请你具体介绍一下你的作法,关键在于你是否也是用多个TADOQuery来执行SQL语句,
因为我试过用一个TADOQuery来做是可以的。另外,你试过用动态创建的TADOQuery
执行SQL了吗?在事务提交前把所有TADOQuery都Free掉后,事务处理正常吗?你设置
过那些属性?
 
我分别用了三个ADOQUERY分别负责查询、增加、删除啊动态SQL语句也没问题的
 
zengr:
那就奇怪了,我试过为啥不行呢?我们公司的同事也试过,也不行。你有做过什么
设置,或打个pack,我已经打过一个ADO的pack了。我试的时候用的是默认设置。
 
不妨你将程序发过来,我帮你试一试,好吗?
 
接受答案了.
 
zengr and yamaha:
这个问题怎么解决?
 
顶部