关于adoconnection的事务处理问题?
try
adoconnection1.begintrans;
with adoquery1 do
begin
Close;
SQL.clear;
SQL.add('insert into xsxxB values(1,60,20)');
ExecSQL;
end;
adoconnection1.committrans;
except
adoconnection1.Rollbacktarans;
end;
请问以上关于事务处理的究竟是什么意思?
问题点数:20、回复次数:3Top
1 楼okgxs(一叶风铃)回复于 2004-12-01 11:00:29 得分 10
try
adoconnection1.begintrans; //事务开始
with adoquery1 do
begin
Close;
SQL.clear;
SQL.add('insert into xsxxB values(1,60,20)');
ExecSQL;
end;
adoconnection1.committrans; //提交事务,插入数据库
except
adoconnection1.Rollbacktarans; //一旦数据库插入失败,侧撤销插入
end;
Top
2 楼searoom(海龙)回复于 2004-12-01 11:30:20 得分 10
上面的语句不要那样写
最好能够把 Except 定位到你认为可能会出错的地方
adoConnection1.BeginTrans;
with aodQuery1 do
begin
close;
SQL.Clear;
SQL.Add('insert into xsxxB Values(1,6,20)');
try
except
adoConnection1.RollBackTrans;
end
end;
if adoConnection1.InTransaction then
adoConnection1.Committrans;Top
3 楼seekuface(seekuface)回复于 2004-12-01 13:27:03 得分 0
同上意见……
不过我认为上面那种写法也是可以的……
searoom(海龙)的作法我认为是直接在易出错(你自己认为的)的地方抛出一个异常,给出原因即可,其他的留给数据库去处理就行了……Top




