网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi模拟组件的两阶段提交
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
nbsp;  self.isRootTrans := false

    else

    begin

      self.DBOperate.BeginTrans;           //是根事务,就开始事务

      self.isRootTrans := true;

      self.DBOperate.isCommit := true;       //初始化提交标志为要提交事务

    end;

  end;

end;



destructor TTS_DL.Destroy;

begin

  if self.isNeedTrans then

  begin

    //如果是根事务,就按照投票结果进行事务提交或回滚

    if self.isRootTrans then

    begin

      if self.DBOperate.isCommit then

        self.DBOperate.CommitTrans

      else

        self.DBOperate.RollbackTrans;

    end;

  end;

  inherited;

end;



procedure TTS_DL.SetAbort;

begin

  self.DBOperate.isCommit := self.DBOperate.isCommit And false;       //投票说要回滚

end;



procedure TTS_DL.SetComplete;

begin

  self.DBOperate.isCommit := self.DBOperate.isCommit And true; //投票说要提交

end;



回到刚才的业务类Tthing和Tperson,这次都从TTS_DL类继承下来。

       Tthing = class(TTS_DL);

       Tperson = class(TTS_DL);

Tthing的删除代码该为如下:

procedure Tthing.Drop(const thing:String);

var

  sqlString:String;

begin

  sqlString := 删除的SQL语句;

  try

    self. DBOperate.Execute(sqlString);

    self. DBOperate.SetComplete;         //投票提交

  except

    self. DBOperate.SetAbort;                     //投票回滚

    raise;

  end;

end;

Tperson的删除代码如下:

procedure Tperson.Drop(const person:String);

var

  sqlString:String;

  thing:Tthing;

begin

  sqlString := 删除的SQL语句;

  thing := Tthing.Create(self. DBOperate,true);              //TDBOperate_DL类型的DBOperate是作为参数传进去的,true代表需要事务。

  Try

    Try

      Thing.Drop(person);

      Self.DBOperate.Execute(sqlString);

      self.DBOperate.SetComplete;           //投票提交

    except

      self. DBOperate.SetAbort;                &n
  • 下一篇资讯: DELPHI8操作符重载的例子
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号