请关注:
http://www.csdn.net/expert/topic/411/411075.shtm
分数为150分
十万火级,如能给出答案,再送300分
有兴趣的人留下email
我把程序发给你们。 

解决方案 »

  1.   

    你一次就显示4000条?没必要吧?一个屏幕一次最多也就看到100条而已,翻页时再读取,或者放到idle中去读取。
      

  2.   

    这不是显示慢,是你处理的时候没有弄好。你使用一个SQL语句把所有的记录都读到内存当中来,然后再把内存中的内容显示到列表框当中去,这样速度会快,另外,你可以使用存储过程来读取这些字段,而不是使用CRecordset来读取。试试ADO方式也可以。
      

  3.   

    zzh你说的有些问题:
    1、读到内存中,则无法显示当前记录的内容(如被修改了)
    2、如果到读入内存,则效果更差,还不如直接添加到Clistctrl 控件,更节省空间。
      因为这样只有CLISTCTL控件有存储记录
    3、使用其他方法,估计结果应该是一样的,因为每一次读取一条记录,效率肯定是很
     差,除非使用一次读取多条记录的方法。Kronus(Kronus) 说的不错,
    可以试一试!!
    谢谢大家的关心、讨论。
      

  4.   

    jiangsheng(蒋晟) 你有什么办法,
    有没有SRC给我发送一份,或者在具体些。谢谢
      

  5.   

    我的地址是:
    [email protected]多多讨论,多多联系!!
      

  6.   

    http://msdn.microsoft.com/library/en-us/shellcc/platform/CommCtls/ListView/ListView_Using.asp?frame=true#Using_Virtual_ListView_Controls
      

  7.   

    是的,使用存储过程取得总的记录数量,以后我还是使用一般的方法来读区每一条记录,另外一个问题,就是在屏幕REFRESH时,也要重新读取相同的记录,有些浪费!!有没有其他的好办法。??
      

  8.   

    使用CListCtrl虚表显示数据所用时间和记录数量无关,你肯定搞错了,不管有多少记录,时间应该不会超过1秒,虚表事实上显示的只是一页数据,
      

  9.   

    xc(xc),我在使用虚表时,每一次窗口重画都要重新读取SQL数据记录,
    显示速度肯定会相对慢一些!!
    即使只显示相同的一页!
      

  10.   

    不会吧!我用ODBC + 虚表,7万条记录也才10秒钟,不会慢的!
      

  11.   

    建议你用Ole DB会更快,那你的刷新需要自己控制一下了 
      

  12.   

    本人已经解决:
    1、快速统计总的记录数,不管当前记录个数有多大,我只要调用SetAbsolutePosition
    和IsEOF函数 28 + 7 次就OK了!!!
    2、还有,通过处理,显示同一条记录只要读取一次,要效提高了显示速度!!