首先请问你有必要打开这么大的一个表吗?
使用where约束一下吧。第二,是什么数据表?产品?图书目录?我不会这么打开一个大表的。

解决方案 »

  1.   

    begin
      jj_kqFrm:=Tjj_kqFrm.Create(self);
      with dmodule.qry_jj_kq do
      begin
        close;
        open;
      end;
      jj_kqFrm.showmodal;
    end;
    这是现在用的代码,在jj_kqFrm显示前大概有五六秒的时间
      

  2.   

    你可以用select top n ...分页显示。
      

  3.   

    如下,打开QUERY前,禁止控件刷新.
    begin
      jj_kqFrm:=Tjj_kqFrm.Create(self);
      with dmodule.qry_jj_kq do
      begin
        try
        DisableControls
        close;
        open;
        finally
        EnableControls
        end
      end;
      jj_kqFrm.showmodal;
    end;
      

  4.   

    先只返回一部分记录,然后在用户不注意的时候偷偷把所有的数据都读进来
    (好象用ado控件可以指定一次返回多少条记录.)
      

  5.   

    照常理,几千条数据不会这么慢,
    查一查你的query有没有beforeopen;afteropen;beforepost这样子的事件?
    p