经测试发现,如果把记录集的游标设置为adUserServer可以大大降低网络传输量,但是在把这个记录集邦定到msflexgrid控件的时候会报错,提示数据源不正确,如果把记录集的游标设置为adUserClient则可以解决这个问题,但是会大大增加网络传输量。
是否aduserserver类型的记录集不能邦定到msflexgrid.datasource属性?
是否aduserserver类型的记录集不能邦定到msflexgrid.datasource属性?
msflexgrid.datasource属性必须是adUseClient
有什么办法解决?
设置了msflexgrid.datasource=rs
明明rs有4000多条记录,为什么只显示了前面211条
並不是RS的方式的問題了
你就要盡量減少數據流量
比如處理的時候多用用存儲過程
顯示數據的時候只顯示少數的幾個 比如TOP 100
如果數據不夠的話 再重新設置查詢語句
我看只能這樣了
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个数据包,基本没有时间延迟总结的结论就是程序运行的时间基本与网络数据包传送大小成正比,有没有办法减少数据包的传送,同时又能够显示所有的数据(不是每次只取部分数据进行分页显示)