• delete删除所有记录类的写法


    删除所有记录的类的定义如下:

    unit UDeleteAll;
    
    interface
    uses  FDataPool, Data.DB, Data.Win.ADODB, Vcl.Menus,  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls,
      Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd,
      Vcl.StdCtrls;
    
    /// <summary>
    /// 清空所有
    /// </summary>
    type TDeleteAll=class
      public
      class procedure deleteAllRecord (var sAqry:TADOQuery);
    end;
    implementation
    
    uses 日常管理助手;
      class procedure TDeleteAll.deleteAllRecord (var sAqry:TADOQuery);
      var
      SBiao: string;
      begin
       SBiao:=copy(sAqry.name,4,length(sAqry.name)-3);
         try
            with TADOQuery.Create(nil) do
              begin
                Connection := frmDataPool.ADOConnection1;
                if messagedlg('删除所有记录?',mtconfirmation,[mbyes,mbno],0)<>mryes then
                   Abort
                else
                begin
                SQL.Text := 'DELETE FROM ' + SBiao ;
                ExecSQL;
                end;
                    //防止程序假死
                Application.ProcessMessages;
                 //刷新下显示
                sAqry.Close;
                sAqry.Open;
    
              end;
         finally
          TADOQuery.Create(nil).Free;
         end;
      end;
    end.
    

     应用如下:

    procedure TForm3.Button15Click(Sender: TObject);
    begin
     TDeleteAll.deleteAllRecord(frmDataPool.qry公司利润表);
    end;
    

    注意:用之前要先引用下类单元名;

    如:uses UDeleteAll; 

    不用定义类的时候的写法:

    procedure TForm3.Button15Click(Sender: TObject);
    begin
         try
            with TADOQuery.Create(nil) do
              begin
                Connection := frmDataPool.ADOConnection1;
                if messagedlg('删除所有记录?',mtconfirmation,[mbyes,mbno],0)<>mryes then
                   Abort
                else
                begin
                SQL.Text := 'DELETE FROM 公司利润表';
                ExecSQL;
                end;
                    //防止程序假死
                Application.ProcessMessages;
                 //刷新下显示
                frmDataPool.qry公司利润表.Close;
                frmDataPool.qry公司利润表.Open;
    
              end;
         finally
          TADOQuery.Create(nil).Free;
         end;
    end;
    

    总结:

    1.运用类的封装、继承、多态可以让业务逻辑的代码专一写成一个类单元,方便同一类似功能的引用,避免写多次重复代码;

    2.另外也增加了代码的简洁易懂,让界面设计里的代码尽可能简洁;

    也方便了维护,只要改功能变动,只需对类进行更改就可以对所有用该功能的地方修改;

    3.由于类需要独立单元没有直接把代码写在事件里翻看省事,如果这个功能重用次数少适合直接写在代码事件里。

  • 相关阅读:
    【Docker】04 部署MySQL
    【Docker】03 基础操作
    【Nexus】Linux上的Maven私服搭建
    【Mybatis-Plus】01 快速上手
    【Java】IDEA普通JavaEE项目实现SSM整合
    【Vue】03 Slot 插槽 & 自定义事件
    【Vue】02 Component 组件 & Axios
    【Vue】01 基础语法
    【Vue】Vue-Cli 安装
    【Project】JS的Map对象前后交互问题
  • 原文地址:https://www.cnblogs.com/ddxxxb/p/6979961.html
Copyright © 2020-2023  润新知