zoukankan      html  css  js  c++  java
  • mysql + unidac 使用事务例子

    //备注:mysql必须是使用innoDB引擎才支持事务功能,否则以下事务相关代码将失效。//SQL SERVER和Oracle还没试,明天回公司试了再发代码。procedure TForm1.btn1Click(Sender: TObject);
    var
      i, j: Integer;
    begin
      UniConnection1.Connect;
      try
        try
          UniTransaction1.Connections[0].StartTransaction;
          UniQuery1.Params.Clear;
          UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
          UniQuery1.Params.ParamByName('username').Value := 'eboy';
          UniQuery1.Params.ParamByName('password').Value := '1111';
          UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去
    
          UniQuery1.Params.Clear;
          UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
          UniQuery1.Params.ParamByName('username').Value := 'frr';
          UniQuery1.Params.ParamByName('password').Value := '123';
          UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去
    
          UniQuery1.Params.Clear;
          UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
          UniQuery1.Params.ParamByName('username').Value := 'lj';
          UniQuery1.Params.ParamByName('password').Value := '880414';
          UniQuery1.ExecSQL; //如果不使用事务,这条将插入进去
    
          UniQuery1.Params.Clear;
          UniQuery1.SQL.Text := 'insert into user (username,password)values(:username, :password)';
          UniQuery1.Params.ParamByName('username').Value := 'lj';
          UniQuery1.Params.ParamByName('password').IsNull; //字段设为not null,所以这里会出错
          UniQuery1.ExecSQL; //开启事务后,上面的三条都将回滚
          
          UniTransaction1.Connections[0].Commit;
    
        except on e: Exception do
          begin
            UniTransaction1.Connections[0].Rollback;
            ShowMessage(e.Message);
          end;
        end;  
      finally
        UniConnection1.Disconnect;
      end;
    end;
  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/china1/p/3395134.html
Copyright © 2011-2022 走看看