我有一张表,有一个BLOB字段,这张表共有7000多条记录,当我使用一个ADOQUERY去OPEN这张表时候,就可以看到内存一路飙升。郁闷。adoconnect的CursorLocation我分别设置过UseClient和UseServer,一样的下场高手们请指教阿

解决方案 »

  1.   

    你如果是select * from Table1的话,当然是把所有的内容取到客户端啦
      

  2.   

    TADOTable才是只能返回整个表的数据的。既然是Query,就表示最好有选择,例如,只select id, name from table1 where id < 100,要用到Blob字段的内容时,再从服务器获取
      

  3.   

    Blob字段 要用的时候再取就不会拉 :)
      

  4.   

    我的确要用到Blob的,所以在我的select列表中包含blob字段,VCL环境下ADO对象本身不能提供什么优化吗?比如在VB环境下有个缓存记录数的,如果你设至100,那么他每次缓存到客户端100。
      

  5.   

    CacheSize设了也没用,好像是假的
      

  6.   

    据我所知,没有直接办法,用各见解的吧,你把BLOB字段的内容旁边再加一个列,用来表明BLOB字段是否有内容,select 的时候,不要select 那个blob的字段,当用户需要那个信息的时候,再用另外一个QUERY把它掉出来。