我用ADOQuery连数据库,发现如果用select等SQL语名查询数据库都会比较慢,我想提高查询速度。我见ADOQuery控件里有个seek方法,但这应该怎么用?是不是得先在数据表建索引?我是用"Create table"建表的,请问又该如何建立索引?
请高手帮忙,如果解决马上给分!

解决方案 »

  1.   

    是不是引擎设置错了,
    DELPHI默认是CLIENT,但对ACCESS用SERVER模式快多了,60万条记录打开只要1秒不到。
    TADOConnection.CursorLocation设为clUseServer就好了,
    但对于MSSQL,用clUseClient很快
      

  2.   

    语句一样改变控件效果不大.建索引:
    create index tablename on(ziduan)要使建索引是要快很多!但是不是没条件的!你也需要付出代价,建议你看看索引方面的书籍。
      

  3.   

    请问是不是建立索引后就可以用seek方法?用seek方法会比用select快吗?我试过,用ADOQuery.Append方法比用SQL的insert方法快许多。seek方法应该怎么用?
      

  4.   

    你加索引、Key,要么直接用存储过程,在本机上,Select应该不慢----------------
    沉沦中..........
      

  5.   

    CREAT [UNIQUE][CLUSTER]INDEX<索引名>
    ON <表名>(<列名>[<次序>][,<列名>[次序]]……)ASC升序  DESC降序
    UNIQUE唯一记录
    CLUSTER 索引项的顺序与表中记录的物理顺序一致的索引组织
      

  6.   

    Searches for a record using the current index.Delphi syntax:type TSeekOption = (soFirstEQ, soLastEQ, soAfterEQ, soAfter, soBeforeEQ, soBefore);
    function Seek(const KeyValues: Variant; SeekOption: TSeekOption = soFirstEQ): Boolean;
      

  7.   

    seek方法比较快的,是不是其它地方出错了?
      

  8.   

    用locate方法吧我觉得最好了我一直用它
      

  9.   

    如果英文够好的话,输入seek,定位光标后,直接看帮助,就像zyyjc()所说