使用ADOQUERY打开一张表难道把所有记录缓存到客户端?狂吃我几百M内存

babystudio 2005-08-23 08:58:09
我有一张表,有一个BLOB字段,这张表共有7000多条记录,当我使用一个ADOQUERY去OPEN这张表时候,就可以看到内存一路飙升。郁闷。

adoconnect的CursorLocation我分别设置过UseClient和UseServer,一样的下场

高手们请指教阿
...全文
175 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudi_1982 2005-08-23
  • 打赏
  • 举报
回复
据我所知,没有直接办法,用各见解的吧,你把BLOB字段的内容旁边再加一个列,用来表明BLOB字段是否有内容,select 的时候,不要select 那个blob的字段,当用户需要那个信息的时候,再用另外一个QUERY把它掉出来。
babystudio 2005-08-23
  • 打赏
  • 举报
回复
服务器端游标,下场还是一样55555555
gwj278 2005-08-23
  • 打赏
  • 举报
回复
关注~`
exu 2005-08-23
  • 打赏
  • 举报
回复
使用服务器端游标
babystudio 2005-08-23
  • 打赏
  • 举报
回复
CacheSize设了也没用,好像是假的
babystudio 2005-08-23
  • 打赏
  • 举报
回复
我的确要用到Blob的,所以在我的select列表中包含blob字段,VCL环境下ADO对象本身不能提供什么优化吗?比如在VB环境下有个缓存记录数的,如果你设至100,那么他每次缓存到客户端100。
real_name 2005-08-23
  • 打赏
  • 举报
回复
Blob字段 要用的时候再取就不会拉 :)
hthunter 2005-08-23
  • 打赏
  • 举报
回复
TADOTable才是只能返回整个表的数据的。既然是Query,就表示最好有选择,例如,只select id, name from table1 where id < 100,要用到Blob字段的内容时,再从服务器获取
hthunter 2005-08-23
  • 打赏
  • 举报
回复
你如果是select * from Table1的话,当然是把所有的内容取到客户端啦

2,496

社区成员

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

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