请教多层分布式中事务的写法,请帮忙看看.(20分)

  • 主题发起人 主题发起人 七小对
  • 开始时间 开始时间

七小对

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟在应用层定义了接口方法,如下,在客户端调用时却不能更新回数据库,
1.请各位帮忙看看是怎么回事?
2.请各位指点一下应该怎么写事务比较好,麻烦了。
procedure Txsm100.turnmoney(var name1, name2, money: OleVariant);
begin
with ADOConnection2do
begin
try
begin
trans;
with ADOQuery1do
begin
close;
sql.clear;
sql.add('updata xsm2 set money=money-'+money+' where name like %'+name1+'%');
active:=true;
close;
sql.Clear;
sql.add('updata xsm2 set money=money+'+money+' where name like %'+name2+'%');
active:=true;
end;
showmessage('事务执行成功!');
committrans;
except
rollbacktrans;
showmessage('事务执行失败!');
exit;
end;
end;
end;
其中有表xsm2(name,money);
 
不用緩存提交試試看.locktype<>batch.........
 
谢谢楼上的,可是,我是想学用一下事务啊.
 
这样行不行?
var lsTmpSql :string;
....
....
....
lsTmpSql := 'begin
tran '
+'updata xsm2 set money=money-'+money+' where name like %'+name1+'%'
+'updata xsm2 set money=money+'+money+' where name like %'+name2+'%'
+'commit tran ';
try
with ADOConnection2do
begin
sql.clear;
sql.add(lsTmpSql);
execSql;
end;
showmessage('事务执行成功!');
except
showmessage('事务执行失败!');
end;
 
跟我的好象差不多.谢谢!
 
多人接受答案了。
 
后退
顶部