ADO控件如何进行多线程sql查询,最好是有源代码的

解决方案 »

  1.   

    是不是这样,有个ado正在执行一个select 要很长时间的SQL
    另一个ado可以同时执行一个短SQL?  是同时哦?
      

  2.   

    那就把ADO的相关查询过程函数封装到多线程里面去
    每次查询的时候都开一个线程去查,查完了就kill掉
      

  3.   

    给你复制一段我用的代码constructor  conn.create;
    begin      FreeOnTerminate := True;
          inherited create(false);
    end;procedure conn.DoVisualSwap;
    begin
    // 数据源控制与界面更新有关的操作,必须在主线程中进行,
    //否则即使再在主线程调用form1.DBGridEh1.Update;也不管用,
    //多线程数据库编程请参考DELPHI开发指南一书第十一章!
    form1.StatusBar1.Panels[0].Text:='数据库已打开!';
     form1.DataSource1.DataSet:=form1.query;
    end;procedure conn.Execute;
    begin
        coinitialize(nil);
          form1.adoconnection1.Close;
          form1.adoconnection1.ConnectionString:=sqlstr;      //发现XPMENU与多线程有冲突,加上它后程序运行后没有反应!
          form1.query.Active:=true;
         couninitialize;
       Synchronize(DoVisualSwap);
     end;