关于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,来控制服务端的事务控制,用法简洁,想必一看也就清楚了。
时间: 2024-10-26 11:24:22