一个在多层数据库应用中的事务控制问题(100分)

  • 主题发起人 主题发起人 zhenkui
  • 开始时间 开始时间
Z

zhenkui

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi6编写一个三层架构的数据库应用程序,在应用服务器端使用了三个ADODataset组件与前台的三个ClientDataSet相联,这三个数据集并无Master/Detail关系,现在前台三个ClientDataSet都有或部分有数据更新,不知如何将它们在应用服务器端作成一个完整的事务,请各位高手不吝赐教。
 
补充:如果有其它在三层应用中解决多表更新事务的方法,也请说一说。
 
把数据更新写在服务器端,输出一个方法供客户端调用,这样就就可以在服务器端用事务来控制更新了
 
我也是在应用服务器端处理事务的
 
那必须将建立一个COM+服务器来管理你的事务,
 
首先在中間層定義三個方法.
procedure TWzef.wz_begin
trans(out _result: WideString);
begin
if not WzConnection.InTransaction then
WzConnection.begin
Trans;
_result:='開始異動交易.';
end;

procedure TWzef.wz_committrans(out _result: WideString);
begin
WzConnection.CommitTrans;
_result:='存檔成功,已經向數据庫提交.';
end;

procedure TWzef.wz_rollbacktrans(out _result: WideString);
begin
WzConnection.RollbackTrans;
_result:='存檔失敗,事務已經回混.';
end;
然后客戶端在更新數据時先調用中間層的方法.
 
后退
顶部