我查询很多很多记录的时候  100万左右!数据库是SQLSERVER2000dim rs As New ADODB.Recordset
sql="select * from ysss"
Dim sql As String
'进度条v_max = rs.RecordCount
ProgressBar1.Value = 0
ProgressBar1.Max = v_max
ProgressBar1.Visible = True
For i = 1 To v_max
    ProgressBar1.Value = i
    If i = v_max Then ProgressBar1.Visible = False
    
Next如果记录在1W条左右 是没什么问题,现在记录是100W,查询时根本就没反映,象死机一样。
为什么进度条没反映!!!VB 到底怎么样才能优化查询,别人说什么线程,我不太知道,请高手给我解答啊!!

解决方案 »

  1.   

    adOpenForwardOnly  做什么的,
    我把ID 做成主健了,按ID 查询   为什么还是很慢
    还有  为什么我的进度条显示不出来呢
      

  2.   

    rs.open cn,.. ,adopenforwordonly,..第3个就是那个属性啊
      

  3.   

    还有就是 sql="select * from ysss"推荐不要使用  * ,最好只查询有用的字段,不要把没有用的字段也选出来最好这样, select a ,b from ysss
      

  4.   

    呵呵,同意flyingZFX
    另外你可以把表结构贴出来,说说想完成什么数据的查询。
    进度条不显示的话试试progressbar1.refresh
      

  5.   

    如果ADODB.Connection对象的属性CursorLocation = adUseClient则在你查询数据时要等数据全部返回时你才能操作.
    如果设为adUseServer你可以马上就能记录集进行操作,只不是不能使用RecordCount属性得到记录条数.具休内容参考ADO帮助说明文档
      

  6.   

    100W條你還不用分頁,這麼多記錄不管你用什麼取出來都會很慢
    最好的方法,一次用多少取多少,一次取50or100個記錄
    然後每點一次下一頁,再去下一個50or100個記錄來顯示,
    關於分頁的存儲過程很多,搜索一下