正在阅读:用Delphi模拟组件的两阶段提交用Delphi模拟组件的两阶段提交

2004-02-14 09:34 出处:CSDN 作者:eastliangliang 责任编辑:linjixiong
  end;

  写了一个TThing类,用于向数据库中添加、修改或删除有关某种东西的记录,调用TDBOperate_DL类完成。为了调用方便,因此有关的事务就放在了TThing类中,外部调用时不用考虑事务了。
  如:

  procedure Tthing.Drop(const thing:String);

  var

  sqlString:String;

  begin

  sqlString := 删除的SQL语句;

  self.DBOperate.BeginTrans;           // DBOperate是TDBOperate_DL类型的私有变量,创建Tthing类实例时传入的参数。

  try

    self.DBOperate.Execute(sqlString);

    self.DBOperate.CommitTrans;

  except

    self. DBOperate.RollbackTrans;

    raise;

  end;

  end;

  后来又写了个TPerson类,用于向数据库中添加、修改或删除有关人的记录。同样事务放在了TPerson类中,现在我想删除人的记录时顺便调用TThing类删除和人有关的东西,事务问题就出现啦:事务不能嵌套啊。如果先删除TThing,再重新声明事务删除TPerson,如果TPerson出错,还怎么回滚TThing?

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品