引用第6楼watera于2010-11-22 20:41发表的 :
在数据库海量的数据面前,再大的内存也能耗尽,所以Qt才给了个canFetchMore分次读取处理。楼主非要一次性把数据全读进来却怪Qt设计不好,真是岂有此理

呵呵,我也没非要一次全部读出来啊。
我希望它有一个接口,能够传出一个类似数据库句柄的东东,再有一个标准接口给程序员自己管理取多少数据,不需要QT封装缓存全部数据,这样就给程序员提供了更大的灵活性。
它现有的封装包做了几乎全部的事情,结果也是丧失了灵活性,迫使程序员不得不按照它的路子往下走,一般情况下没问题,但数据量大了,问题就出来了。
象我这个数据导出的问题,其实不需要它把数据全部缓存起来,要是有这样一个接口,然后通过内存映射文件,直接写到文件中去,效率和速度都比较理想,也不占用多少内存,海量数据处理也不是问题,不是吗?
当然这个也可以我自己去实现,但自己实现和QT将来的版本有可能会有冲突,而且要对每种数据库接口要做修改,工作量比较大。
我觉得这是一个缺陷,并不是它现有设计上有缺陷,而是觉得它易用性有了,却缺乏最大限度的灵活性。
希望大家不要仅局限在QT现有封装上思考问题。
谢谢大家!
[ 此帖被lxbin2003在2010-11-28 10:31重新编辑 ]