我试了以下, 我的表中记录有20000 条执行很慢很慢有没有其它的办法解决。
begin       begin
       adotable2.First;
       while not adotable2.eof do begin
       lx1:=adotable2.fieldbyname('leixin').AsString;
       adotable2.edit;
       adotable2.Post;
       adoquery2.Close;
       adoquery2.SQL.Clear;
       adoquery2.sql.add('select count(t11) as lnfen2 from tk where t11 like ''%'+lx1+'%''');
       adoquery2.Open;
       lnfen2:=adoquery2.fieldbyname('lnfen2').asinteger;
       adotable2.Edit;
       adotable2.fieldbyname('yti').asinteger:=lnfen2;
       adotable2.Next;
       end;
       end;

解决方案 »

  1.   

    用线程解决啦!继承于TThread类。
    弄它几十个线程,分成若干段就把它们解决了。
    并且不影响主窗口的工作,也不至于导致无响应。
      

  2.   

    将代码改成如下,再试试看:
    begin       begin
           adotable2.First;
           while not adotable2.eof do begin
           lx1:=adotable2.fieldbyname('leixin').AsString;
           adotable2.edit;
           adotable2.Post;
           adoquery2.Close;
           adoquery2.SQL.Clear;
           adoquery2.sql.add('select count(1) as lnfen2 from tk where t11 like ''%'+lx1+'%''');
           adoquery2.Open;
           lnfen2:=adoquery2.fieldbyname('lnfen2').asinteger;
           adotable2.Edit;
           adotable2.fieldbyname('yti').asinteger:=lnfen2;
           adotable2.Next;
           end;
           end;