zoukankan      html  css  js  c++  java
  • 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.由于类需要独立单元没有直接把代码写在事件里翻看省事,如果这个功能重用次数少适合直接写在代码事件里。

  • 相关阅读:
    自动化测试随笔4-无法点击底部的完成按钮
    自动化测试随笔3
    自动化测试随笔2
    node.js的Promise库-bluebird示例
    swagger在node.js下的使用
    Angular6基础:在项目中使用less
    Angular最新教程-第三节在谷歌浏览器中调试Angular
    Centos7 设置Mongodb开机启动-自定义服务
    借助 emq 消息服务器搭建微信小程序的mqtt服务器
    linux SFTP用户创建 不允许用户登录,并且连接只允许在制定的目录下进行操作
  • 原文地址:https://www.cnblogs.com/ddxxxb/p/6979961.html
Copyright © 2011-2022 走看看