经测试发现,如果把记录集的游标设置为adUserServer可以大大降低网络传输量,但是在把这个记录集邦定到msflexgrid控件的时候会报错,提示数据源不正确,如果把记录集的游标设置为adUserClient则可以解决这个问题,但是会大大增加网络传输量。
是否aduserserver类型的记录集不能邦定到msflexgrid.datasource属性?

解决方案 »

  1.   

    aduseserver类型的记录集不能绑定到msflexgrid.datasource属性
    msflexgrid.datasource属性必须是adUseClient
      

  2.   

    但是aduserclient类型的记录集返回非常慢,需要很大的网络传输
    有什么办法解决?
      

  3.   

    adUserServer不是把数据放在服务器上,这样不会加大服务器负载我觉得用adUserClient,再用分页或者是加些什么条件,人为减少数据量
      

  4.   

    我们组建的是一个大局域网,由若干个子网组成,所以下面的子网网络状况不是很好
    设置了msflexgrid.datasource=rs
    明明rs有4000多条记录,为什么只显示了前面211条
      

  5.   

    這種情況的話
    並不是RS的方式的問題了
    你就要盡量減少數據流量
    比如處理的時候多用用存儲過程
    顯示數據的時候只顯示少數的幾個 比如TOP 100
    如果數據不夠的話 再重新設置查詢語句 
    我看只能這樣了
      

  6.   

    用以下两种方法获取记录集:
    1.cursorlocation=aduserserverDim rs As ADODB.Recordset
    dim strSQL as stringstrsql="Select * from tbWork"
    Set rs= New ADODB.Recordset
    rs.CursorLocation = adUseServer
    rs.Open strSQL, PConn, adOpenStatic, adLockReadOnly   '这里接收3个数据包,基本没有时间延迟Set MSHFlexGrid1.DataSource = Rst_Flex                '这里接收7000个数据包,需要时间超过1分钟2.cursorlocation=aduserclientDim rs As ADODB.Recordset
    dim strSQL as stringstrsql="Select * from tbWork"
    Set rs= New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open strSQL, PConn, adOpenStatic, adLockReadOnly   '这里接收7000个数据包,需要时间超过1分钟Set MSHFlexGrid1.DataSource = Rst_Flex                '这里接收2个数据包,基本没有时间延迟总结的结论就是程序运行的时间基本与网络数据包传送大小成正比,有没有办法减少数据包的传送,同时又能够显示所有的数据(不是每次只取部分数据进行分页显示)
      

  7.   

    用RDO会不会好 一点?
      

  8.   

     如果把记录集的游标设置为adUserServer可以大大降低网络传输量?