[转载红鱼儿]kbmmw 开发点滴:kbmmW服务端事务控制

   关于kbmMW的事务控制,前文已经在客户端实现,通过kbmMWClientTransaction来控制多个数据集的提交,在客户端提交多数据集,
实际上,是在客户端实现业务逻辑,并通过一个事务来完成数据处理,这是违反多层架构的做法,实际项目中,需要在服务端,
往往是利用多个数据集进行业务处理,并且用事务来控制,那我们该怎么办呢?换句话说,如何在服务实现事务的控制。

kbmMW在服务端,如同在客户端一样,为我们提供了方便的机制来处理事务。
下面的代码,转自kbmMW的新闻组:

var tx: TkbmMWTransaction;
begin
 tx := TkbmMWTransaction.Create;
 try
   try
     tx.AddConnection(SrvCore.mwDbConPool.GetBestConnection);
     tx.StartTransaction;
     qQueryDel.Execute(tx);//if exec type statement
     qQueryDel.Resolve(tx);//if resolve qAnotherQuery.Resolve(tx);
     tx.CommitTransaction; Result := true;
   except
     tx.RollbackTransaction;
     raise;
   end;
 finally
   tx.ReleaseConnections;
   tx.Free;
 end;
end;
通过上面的代码,可以看到,kbmMW提供了TkbmMWTransaction,来控制服务端的事务控制,用法简洁,想必一看也就清楚了。
原文地址:https://www.cnblogs.com/xalion/p/2754896.html