• Delphi ADO数据操作封装类


    {
     将数据集操作方面的东西全部封装成一个单独的类
     TcustomAdoDataSet是TadoQuery、TadoTable、TadoDataSet、TadoCommand的公共祖先类
     应尽量使用TadoDataSet和TadoCommand类
    }
    unit untOpeDataSet;

    interface

    uses
      SysUtils,
      db, adodb, commonFunction, msg;

    type
      TopeDataSet 
    = class
      public
        
    {修改已发生,但还没有得到应用的记录,在关闭窗口前应给予提示}
        
    function adoUpdatesPending(adoDataSet: TCustomAdoDataSet): boolean;
        
    {增加}
        
    procedure Append(adq: TadoQuery);
        
    {保存}
        
    procedure Save(adq: TadoQuery);
        
    {删除}
        
    procedure delete(adq: TadoQuery);
        
    {刷新数据集}
        
    procedure flash(adq: TadoQuery);
        
    {事务提交}
        
    procedure adqCommit(adq: TadoQuery);
        
    {查询数据集}
        
    procedure adqQuery(adq: TadoQuery; s: string);
        
    {带参查询数据集}
        
    procedure adqQueryPara(adq: TadoQuery; s: string; s1: variant);
        
    procedure adqQueryPara2(adq: TadoQuery; s: string; s1: variant; s2: variant);
        
    procedure adqQueryPara3(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant);
        
    procedure adqQueryPara4(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4:       variant);
        
    {更新数据集}
        
    procedure adqExec(adq: TadoQuery; s: string);
        
    {带参更新数据集}
        
    procedure adqExecPara(adq: TadoQuery; s: string; s1: variant);
        
    procedure adqExecPara2(adq: TadoQuery; s: string; s1: variant; s2: variant);
        
    procedure adqExecPara3(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant);
        
    procedure adqExecPara5(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4:       variant; s5: variant);
        
    procedure adqExecPara6(adq: TadoQuery; s: string; s1: variant; s2: variant; s3: variant; s4:       variant; s5: variant; s6: variant);
      
    end;

    implementation

    { TopeDataSet }

    function TopeDataSet.adoUpdatesPending(
      adoDataSet: TCustomAdoDataSet): boolean;
    var
      clone: TadoDataSet;
    begin
      clone :
    = TadoDataSet.create(nil);
      try
        clone.clone(adoDataSet);               
    //复制
        clone.filterGroup :
    = fgPendingRecords; //已得到修改但还没有得到应用的所有记录
        clone.filtered :
    = true;
        result :
    = not(clone.bof and clone.eof);
        clone.close;
      finally
        clone.free;
      
    end;
    end;

    procedure TopeDataSet.adqCommit(adq: TadoQuery);
    begin
      try
        adq.Connection.CommitTrans;
        info(SopeSuccess, Scorp);
      except
        adq.Connection.RollbackTrans;
        info(SopeFail, Scorp, 
    16);
      
    end;
    end;

    procedure TopeDataSet.adqExec(adq: TadoQuery; s: string);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqExecPara(adq: TadoQuery; s: string;
      s1: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqExecPara2(adq: TadoQuery; s: string; s1,
      s2: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqExecPara3(adq: TadoQuery; s: string; s1,
      s2, s3: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.Parameters[
    2].Value := s3;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqExecPara5(adq: TadoQuery; s: string; s1,
      s2, s3, s4, s5: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.Parameters[
    2].Value := s3;
      adq.Parameters[
    3].Value := s4;
      adq.Parameters[
    4].Value := s5;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqExecPara6(adq: TadoQuery; s: string; s1,
      s2, s3, s4, s5, s6: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.Parameters[
    2].Value := s3;
      adq.Parameters[
    3].Value := s4;
      adq.Parameters[
    4].Value := s5;
      adq.Parameters[
    5].Value := s6;
      adq.ExecSQL;
    end;

    procedure TopeDataSet.adqQuery(adq: TadoQuery; s: string);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Open;
    end;

    procedure TopeDataSet.adqQueryPara(adq: TadoQuery; s: string;
      s1: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.open;
    end;

    procedure TopeDataSet.adqQueryPara2(adq: TadoQuery;
      s: string; s1, s2: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.open;
    end;

    procedure TopeDataSet.adqQueryPara3(adq: TadoQuery;
      s: string; s1, s2, s3: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.Parameters[
    2].Value := s3;
      adq.Open;
    end;

    procedure TopeDataSet.adqQueryPara4(adq: TadoQuery;
      s: string; s1, s2, s3, s4: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.Parameters[
    1].Value := s2;
      adq.Parameters[
    2].Value := s3;
      adq.Parameters[
    3].Value := s4;
      adq.Open;
    end;

    procedure TopeDataSet.Append(adq: TadoQuery);
    begin
      adq.Append;
    end;

    procedure TopeDataSet.delete(adq: TadoQuery);
    var
      i: integer;
    begin
      
    if adq.IsEmpty then
        abort;
      i :
    = adq.RecNo;
      
    if queryInfo(SifDel, Scorp) then
      
    begin
        try
          adq.RecNo :
    = i;
          adq.Delete;
          adq.UpdateBatch();  
    //批更新
        except
          adq.CancelBatch();
          info(SdelError, Scorp, 
    16);
        
    end;
      
    end;
    end;

    procedure TopeDataSet.flash(adq: TadoQuery);
    begin
      adq.Close;
      adq.Open;
    end;

    procedure TopeDataSet.Save(adq: TadoQuery);
    begin
      try
        adq.UpdateBatch();
        info(Ssave_success, Scorp);
      except
        adq.CancelBatch();
        info(Ssave_fail, Scorp, 
    16);
      
    end;
    end;

    end.
    procedure adqExec(adq: TadoQuery; s: string);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.ExecSQL;
    end;

    procedure adqExecPara(adq: TadoQuery; s: string;
      s1: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.ExecSQL;
    end;

    procedure adqQuery(adq: TadoQuery; s: string);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Open;
    end;

    procedure adqQueryPara(adq: TadoQuery; s: string; s1: variant);
    begin
      adq.Close;
      adq.SQL.Clear;
      adq.SQL.Text :
    = s;
      adq.Parameters[
    0].Value := s1;
      adq.open;
    end;

    procedure Append(adq: TadoQuery);
    begin
      adq.Append;
    end;

    procedure delete(adq: TadoQuery);
    var
      i: integer;
    begin
      
    if adq.IsEmpty then
        abort;
      i :
    = adq.RecNo;
      
    if queryInfo(SifDel, Scorp) then
      
    begin
        try
          adq.RecNo :
    = i;
          adq.Delete;
          adq.UpdateBatch();  
        except
          adq.CancelBatch();
          showmessage(
    'Fail');
        
    end;
      
    end;
    end;

    procedure flash(adq: TadoQuery);
    begin
      adq.Close;
      adq.Open;
    end;

    procedure Save(adq: TadoQuery);
    begin
      try
        adq.UpdateBatch();
        showmessage(
    'Success');
      except
        adq.CancelBatch();
        showmessage(
    'Fail');
      
    end;
    end;

    end
  • 相关阅读:
    java做微信支付notify_url异步通知服务端的写法
    QT如何编译出带调试信息的qtwebkit库
    Vmware 占用宿主机硬盘空间只增不减
    vmware linux无法正常上网
    Linux中find常见用法示例
    计算机网络OSI参考模型与tcp/ip四层模型
    Core开发-后台任务利器Hangfire使用
    Azure构建PredictionIO和Spark的推荐引擎服务
    NET MVC+EF6+Bootstrap
    服务器
  • 原文地址:https://www.cnblogs.com/sonicit/p/1120678.html
Copyright © 2020-2023  润新知