我现在窗体FormCreate事件中,动态让adoquery加载数据。这样的结果在数据量越来越多的情况下,窗体打开会越来越慢。有没其它更好办法?procedure Tfrm1.FormCreate(Sender: TObject);
beginadoquery1.Close;
adoquery1.Connection:=dm1.ADO_KF;adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from yd01');
adoquery1.Open;
end;

解决方案 »

  1.   

    1、如果数据非常多,多到可以明显感觉影响查询速度的程度,那么,这么多的数据全部查询并显示,已经变得没有意义。
    可以条件查询最新的一部分数据。如果再追求速度,可以只查询需要的字段。2、第二句adoquery1.close; 可以删去3、如果非要查询所有记录的所有字段,应该没有其他办法吧,只有查询。至少我不知道。
      

  2.   

    4、如果要求打开窗体后显示记录,这些代码最好放在FormShow里写,而不是放在FormCreate里
      

  3.   

    部分提取数据吧,如果是SQL语句MS系列的数据库可以用Select Top 100 * From table
    然后进入操作需要的时候,继续提取所有的数据。这样给用户一个假象而已。
    BDE可以控制这个操作,一次提取少量的数据,在滚动数据集的时候,需要的时候BDE自动从数据库提数据。
    ADO也有个提记录数量的属性,不过我设置了,似乎效果不明显,不知道为什么