adoquery1.sql.add('');
adoquery1.open;

解决方案 »

  1.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select xp from abc where code=''12345''');
    adoquery1.open;
      

  2.   

    对code建立索引可以有效提高检索速度
      

  3.   

    adoquery1.close;
    adoquery1.SQL.clear;
    adoquery1.sql.add('select xp from abc where code=''12345''');
    adoquery1.active:=true;
      

  4.   

    同一楼上的意见,我感觉不是检索的问题,因为毕竟纪录不是非常多,但是老兄在重新检索前没有把原来的sql.clear,这样无形中增加了检索的内容。所以返回比较费时,另外图片的数据量由比较大,这样的话如果网络本身的传输速度比较慢,当然就比较慢了。
      

  5.   

    回复 zjwpanhp(php) 照片才28k。
     回复: fredfei(飞飞) code是关键字 
     回复: whw123(令狐冲) 肯定已将sql先clear,再新加条件。
      

  6.   

    我也试过类似的问题,二十多万条数据,用PB做的统计三秒多搞定,但用DELPHI的却十多秒
      

  7.   

    你的“adoquery1.execute;”处是不是有问题,ADOQuery有此方法吗?是不是ExecSQL?如果是的话再加上“adoquery1.active:=true;岂不是执行了两次Select语句?
      

  8.   

    ado不可能那么慢,肯定有问题
      

  9.   

    1)先改正一个问题:用ADO需13秒多,用BDE约2秒但数据不能正确显示(dbimage,image都显示为空白),用PB约1秒且能正确显示。
    2)修正一个语句:adoquery1.execute应该是adoquery1.execsql.
    3)在执行adoquery1.execsql后,如不用adoquery1.active:=true,则不能从中读取如(adoquery1.FieldByName('xp') as TBlobField ).SaveToStream(ms);数据
      

  10.   

    execsql 是用来执行这些 insert, update, delete的语句的,没有结果返回的,要结果集就用 open就可以了。另外如果你在delphi中使用ado的话,记得adoconnection有很多参数可以调的,很影响性能的。其次,pb+sybase本来就是最佳搭配,不太好对比呦
      

  11.   

    回复: suvi():你对这些参数熟吗?能不能给我们解释解释!!
      

  12.   

    主要的调整参数是 CursorLocation和LockType,其它参数相MarshelOptions和MaxRecord都可以试着调整一下,详细叙述请参阅李维的《高效率数据库应用》和一本《asp 经典》
      

  13.   

    13分半,哥们,你的ADO一定是有问题了!
      

  14.   

    with XXQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('...............');
      Prepare;
      Open;
    end;
    ......
      

  15.   

    用Tadotable 控件试一试吧!
      

  16.   

    对code 加索引,或改为用存储过程,在数据库服务器端执行,这样速度会快一些
      

  17.   

    To: Nizvoo(瓦匠泥〓过好每一天) :我就是这么写得可没用.
    我用BDE联,速度是快了不少,但干即显示不出数据来(不管是用image,dbimage,还是另存为bmp文件,都没有用)
      

  18.   

    1.高版本的MDAC
    2.DataSet的CursorLocation设为clUseClient
    3.DataSet的CacheSize值为100~1000之间
    4.使用存储过程
    5.DataSet的LockType为BatchOptimistic或Optimistic,如果是纯浏览图片则设为ReadOnly效率会更加高
      

  19.   

    时间太长了吧?除非你用图象作为条件。
    我们不管是用两层还是三层,不管是用Sybase还是Oracle,数据差不多都有100万也不要那么长时间。要是两个那么大的表连立统计怎么办?
      

  20.   

    我用的是C/S结构,图片是用PB以OLE方法写入数据库,用PB还原没问题,但用Delphi就读不出来(报Bitmap image is not valiable).
      

  21.   

    问题并未解决,不过,我接下来用query代替adoquery,算是解决了这个问题.
    再等下去也没办法解决给分算了
      

  22.   

    ???
    use stored procedure