AdoQuery中的记录查找问题

firstshine 2002-10-26 11:56:17
我的一个表中的字段数不多(不妨假设字段为c1,c2,c3),但是记录不少,大于1000000条,我用AdoQuery来查询该表的记录,不知道如何在AdoQuery中查找符合以下条件的记录:
查找c1<'abc'并且c2='def'中c1最大的那条记录。locate好像不行,他不支持不等式的条件,用filter也不合适,在上百万条记录中过滤出几条数据,性能太低了。各位高手有何办法?
另外,为了性能方面的考虑,AdoQuery.CursorLocation:=clUserServer
...全文
34 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenclass 2002-10-26
  • 打赏
  • 举报
回复
你既然用了adoquery了
为什么不用sql呢
agree with guorui_wh
select max(field) from table name where cl<'*' and c2='*';
hansion3406 2002-10-26
  • 打赏
  • 举报
回复
大伯。。不介竟的话。。可以先用该条件生成一个临时表(如果是本地的话很快的,我试过45万条记只要20多秒,而且还是128M内存的)。然后再从临时表中找最大的。。不知道合不合你意?
guorui_wh 2002-10-26
  • 打赏
  • 举报
回复
用sql把,
select max(field) from table where c1<'abc' and c2='def'
greenclass 2002-10-26
  • 打赏
  • 举报
回复
你用的什么数据库啊?
blazingfire 2002-10-26
  • 打赏
  • 举报
回复
另外AdoQuery的CachSize属性一定要设大一些,一般是500,而默认值为1,这个值十分不好。
blazingfire 2002-10-26
  • 打赏
  • 举报
回复
象这样的数据库用SQL查也行,不过条件一定不能太宽松,不要的数据一定过滤出去
guorui_wh 2002-10-26
  • 打赏
  • 举报
回复
这个比sql查询要慢,而且很多
firstshine 2002-10-26
  • 打赏
  • 举报
回复
各位说的方法都需要多次从数据库中检索数据,甚至我查找一次就需要检索一次,我希望只在开始检索一次,以后的查找都在AdoQuery中进行

2,507

社区成员

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

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