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. 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值