在delphi中使用ADOQuery 执行SELECT * FROM table 程序会卡老半天(数据库有50MB),不知道delphi中是否有类似于C# 中的DataReader 每次读取一条记录?请各位大侠指教

解决方案 »

  1.   

    可以根据需要列字段,如不是全部字段则建议不用*,另外你也可以在SQL语句中设置条件,每次只从数据库取需要的记录。
      

  2.   

    我要处理里面的每一条记录 表中的contant字段内容比较多, 我试着用C# 的 DataReader感觉就挺好,但是不知道delphi中有没有类似的方法 每次读取一条记录 循环往下读
      

  3.   


    --/*楼主用 Top1  就可以只读1条数据了。*/select top 1 *  from 表
    --/*读第二条*/select top 1 *  from (select top 2 * from 表 order by ID  desc)--/*读第N条*/
    select top 1 *  from (select top 2 * from 表 order by ID  desc)
      

  4.   

    SELECT * FROM table 程序会卡老半天 那是数据库的原因,不是delphi的错吧
    建索引
      

  5.   

    SELECT * FROM table是在服务器上执行的,但是把表全读到客户端受内存等因素的限制会很慢,ClientDataSet控件可以控制读取到客户端的记录数。
      

  6.   

    adoquery有一个cachesize属性,你自己调调看。
    ado是微软的东西。delphi只是封装。因此你可能需要上msdn对ado进行一些研究。