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

时间: 2024-10-12 20:29:28

delete删除所有记录类的写法的相关文章

mysql delete删除记录数据库空间不减少问题解决方法

记得在中学时学计算机时老师就告诉我delete删除记录只是给数据库中的记录加一个删除标识了,这样数据库空间并不是减少了,当时没想这么多,昨天发现一个数据库利用delete 删除之后容量没变,后来百度了一下发现了下面一站长分享的文件,写得非常的不错,整理一下给各位参考. 今天空间商告诉我数据库空间满了,检查了一下,发现网站用户行为记录数据表竟然占了20多MB.积累了半年了,该删除释放一下空间了.果断delete之后发现数据库空间竟然没少,虽然数据记录数是零. 原来这是因为删除操作后在数据文件中留下

delete删除记录数据库空间大小不减少问题

记得在大学时学计算机时老师就告诉我delete删除记录只是给数据库中的记录加一个删除标识了,这样数据库空间并不是减少了,当时没想这么多,昨天发现一个数据库利用delete 删除之后容量没变,后来百度了一下发现了下面一站长分享的文件,写得非常的不错,整理一下给各位参考.今天空间商告诉我数据库空间满了,检查了一下,发现网站用户行为记录数据表竟然占了20多MB.积累了半年了,该删除释放一下空间了.果断delete之后发现数据库空间竟然没少,虽然数据记录数是零. 原来这是因为删除操作后在数据文件中留下碎

Mysql删除重复记录,保留id最小的一条

mysql 查询重复字段,及删除重复记录的方法MySQL, 数据库, 数据库, 字段, 服务器数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较.如果仅仅是查找数据库中name不重复的字段,很容易:SELECT min(`id`),`name` FROM `table` GROUP BY `name`; 但是这样并不能得到说有重复字段的id值.(只得到了最小的一个id值)查询哪些字段是重复的也容易:SELECT `name`,count(`name`) as count FROM `

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

ORACLE查询删除重复记录三种方法

本文列举了3种删除重复记录的方法,分别是rowid.group by和distinct,小伙伴们可以参考一下. 比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address =

【个人使用.Net类库】(2)Log日志记录类

开发接口程序时,要保证程序稳定运行就要时刻监控接口程序发送和接收的数据,这就需要一个日志记录的类将需要的信息记录在日志文件中,便于自己维护接口程序.(Web系统也是如此,只是对应的日志实现比这个要复杂一点). 刚开始考虑的比较少,没有加入控制日志文件数量的功能.运行了一段时间,文件夹内的Log文件如下所示: 如果是这样,那运行一年不就三百多个日志文件了,想一想这太可怕了.通过查找资料,发现.Net中的FileInfo存有文件的信息(包括名称,创建时间,文件大小等),那就自己定义一个文件比较器实现

查重 查重复记录 删除重复记录

select * from b; ID AID NAME ---------- ---------- -------------------------------------------------------------------------------- 1 1 b1 2 2 b2 3 2 b2 4 2 b3 这是表的记录   : --根据 aid 和 name 进行同时查询 : --第一种 select * from b b1 where exists ( select 1 from

mysql删除重复记录语句的方法

例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet

SQL查询重复记录、删除重复记录方法

查找所有重复标题的记录:SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC一.查找重复记录1.查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2.过滤重复记录(只显示一条)Select * From HZ