提高AdoQuery的速度
  xaeiTka4h8LY 2024年08月09日 35 0

用TDataSet及其派生类如TAdoQuery对数据库进行查找时,如果TDataSet类没有与数据感知控件相连,通过调用DisableControls可以极大地提高查询速度,特别是在数据比较多的情况下。

下面一段代码查询一个45000条记录的表,不调用DisableControls时需要执行30到40秒,调用DisableControls后只需要1秒到2秒。

procedure TForm1.Button2Click(Sender: TObject);
var Time : DWORD;
begin
  Time := GetTickCount;
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add('select * from table');
  AdoQuery1.DisableControls;
  AdoQuery1.CacheSize := 1000; // 影响不是很大
  AdoQuery1.Open;
  while not AdoQuery1.Eof do
  begin
    AdoQuery1.Next;
  end;
  AdoQuery1.EnableControls; // 恢复,与DisableControls配对调用。
  Time := GetTickCount - Time;
  Label1.Caption := IntToStr(Time);
end;

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月09日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年08月09日   36   0   0 table数据库
  xaeiTka4h8LY   2024年05月31日   73   0   0 MySQL数据库
  xaeiTka4h8LY   2024年08月09日   65   0   0 数据库中间件
  xaeiTka4h8LY   2024年05月31日   68   0   0 数据库mongodb
xaeiTka4h8LY