delphi 中循环读取记录

zx005 2011-10-22 10:41:24
在delphi中使用ADOQuery 执行SELECT * FROM table 程序会卡老半天(数据库有50MB),不知道delphi中是否有类似于C# 中的DataReader 每次读取一条记录?请各位大侠指教
...全文
454 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaikai_kk 2011-10-24
  • 打赏
  • 举报
回复
建索引,查询指定列,加条件,分页取数据,升级电脑
「已注销」 2011-10-24
  • 打赏
  • 举报
回复
adoquery有一个cachesize属性,你自己调调看。
ado是微软的东西。delphi只是封装。因此你可能需要上msdn对ado进行一些研究。
爱蹄子的羊头 2011-10-23
  • 打赏
  • 举报
回复

--/*楼主用 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)
shijies 2011-10-23
  • 打赏
  • 举报
回复
SELECT * FROM table是在服务器上执行的,但是把表全读到客户端受内存等因素的限制会很慢,ClientDataSet控件可以控制读取到客户端的记录数。
IT154602009 2011-10-23
  • 打赏
  • 举报
回复
在ORACLE 中没有TOP
funxu 2011-10-23
  • 打赏
  • 举报
回复
SELECT * FROM table 程序会卡老半天 那是数据库的原因,不是delphi的错吧
建索引
hylf1985 2011-10-23
  • 打赏
  • 举报
回复
学习中,感觉3楼的想法不错
zx005 2011-10-22
  • 打赏
  • 举报
回复
我要处理里面的每一条记录 表中的contant字段内容比较多, 我试着用C# 的 DataReader感觉就挺好,但是不知道delphi中有没有类似的方法 每次读取一条记录 循环往下读
Oraclers 2011-10-22
  • 打赏
  • 举报
回复
可以根据需要列字段,如不是全部字段则建议不用*,另外你也可以在SQL语句中设置条件,每次只从数据库取需要的记录。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧