怎样在midas中处理事务使得当发生错误时可以rollback(20分)

  • 主题发起人 serenesky
  • 开始时间
S

serenesky

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是SQL Server 7.0+ADO+socketconnection的三层的midas(用delphi6.0)
我想在客户端的ClientDataset.ApplyUpdates()时进行事务处理
这样使得万一在数据处理的过程中有错误发生可以rollback
请问该怎么programm在客户端处理这一问题呀
 
我也想听听
 
只能在服务器端控制了,你可以把TDataSetProvider的ResolveToDataSet设为True使得用
连接的数据控件更新,比如是TADOQuery,你可以在她的BeforePost和afterpost加入事务
处理看看。随时想到的,没试过
 
再详细的说一下我的问题
因为在我的midas程序中,有时候,当我插入record时,需要对很多表同时插入
但有时候会碰到这种问题,当程序对第一个表成功插入了record,但插入第二个表时
由于某种原因出现了错误,这时候从数据库的完整性来看,需要把在第一个表中插入的
数据cancel掉
所以我想把这个多表同时插入的事务当作一个事务来处理
请问在客户端应该怎么办呀
source code
var
tempsql:tstringlist;
tempsql:=tstringlist.create;
tempsql.clear;
tempsql.add('insert into tablename1 ......');
tempsql.add('insert into tablename2.....');
tempsql.add('insert into tablename2.....');
//事务开始
for i:=0 to tempsql.count-1do
begin
clientdataset1.close;
clientdataset1.commandtext:=tempsql;
clientdataset1.execute;
end;
//事务结束
比如在事务过程中insert tablename2出现了问题,怎么将insert table1中的数据cancel掉
怎么办呀??????
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1152230
 
顶部