rt

解决方案 »

  1.   

    UP! 没用过。
    adoquery读取慢跟好些方面的原因有关,比如数据库索引、SQL语句质量等。其实如果数据量不是很大,速度应该不会很慢。而且所谓的慢,可能还与显示的控件有关系,要从多方面考虑才好。
      

  2.   

    在线程中使用adoquery好像有很多问题。
      

  3.   

    撇开数据库优化这方面, 用TThread怎么做?
      

  4.   

    开一线程,处理ado的open
    其实不用线程,ado也可以做到异步读取,这样在open大量数据时,一样可以进行其它的操作,而且还能显示正在处理的记录数
    设置     
       ADODataSet1.ExecuteOptions   :=   [eoAsyncFetchNonBlocking]; 事件代码
     procedure   TForm1.ADODataSet1FetchProgress(DataSet:   TCustomADODataSet;   
          Progress,   MaxProgress:   Integer;   var   EventStatus:   TEventStatus);   
      begin   
          //这里可以显示打开进度 
          //Progress,已打开记录数,MaxProgress,总记录数
      end;   
      

  5.   

    其实我是要用TADOStoredProc执行服务器上的存储过程, 用TThread怎么做呢?
      

  6.   

    发表于:2009-03-06 09:14:505楼 得分:0 
    其实我是要用TADOStoredProc执行服务器上的存储过程, 用TThread怎么做呢? 
      不会有什么明显的效果,但是如果要显示进度条.还是问题不大.建议你用TOP语句分开取.
      

  7.   

    我觉得数据有些操作还是放后台操作好些, 处理同样数据用游标比在放在放在DELPHI中处理明显效率高
    如果你一定要DELPHI中处理, 记得要分页