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

 

posted @   delphi学习交流吧  阅读(1648)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示