Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Dim b As String
Dim i As Integer
Dim strselect As String
Dim strInsert As String
Dim SysTime As Date
tcpServer(Index).GetData b
sockbusy(Index) = 0
sqlserverconnect = "driver={sql server};" & "server=MVP;" & "database=GprsTest;" & "uid=sa;" & "pwd=123"
Set conn1 = New ADODB.Connection
conn1.Open sqlserverconnect
Set rs = New ADODB.Recordset
SysTime = Now
strInsert = "insert into GprsTest(记录时间,DateRec) values(' " & Now & " ',' " & b & " ')"
rs.Open strInsert, conn1, adOpenDynamic, adLockOptimistic
strselect = "SELECT * FROM GprsTest order by 记录时间"
rs.Open strselect, conn1, adOpenKeyset, adLockOptimistic
Set DataGrid.DataSource = rs
nRCCount = rs.RecordCount
DataGrid.FirstRow = nRCCount
'conn1.Close
'rs.Close
End Sub我发现程序运行起来以后,每当有数据过来,那系统资源就不断被消耗,虽然每次消耗不多,但时间长了总不是办法,我想每次都把rs.close 和 set rs=nothing, 但是发现我的datagrid就不能显示数据了,另外,即便不让datagrid显示数据,就是把显示的那部分注释掉,还是一样的消耗,并且,一到rs.close就出错,大家帮帮忙啊~
Dim strData As String
Dim b As String
Dim i As Integer
Dim strselect As String
Dim strInsert As String
Dim SysTime As Date
tcpServer(Index).GetData b
sockbusy(Index) = 0
sqlserverconnect = "driver={sql server};" & "server=MVP;" & "database=GprsTest;" & "uid=sa;" & "pwd=123"
Set conn1 = New ADODB.Connection
conn1.Open sqlserverconnect
Set rs = New ADODB.Recordset
SysTime = Now
strInsert = "insert into GprsTest(记录时间,DateRec) values(' " & Now & " ',' " & b & " ')"
rs.Open strInsert, conn1, adOpenDynamic, adLockOptimistic
strselect = "SELECT * FROM GprsTest order by 记录时间"
rs.Open strselect, conn1, adOpenKeyset, adLockOptimistic
Set DataGrid.DataSource = rs
nRCCount = rs.RecordCount
DataGrid.FirstRow = nRCCount
'conn1.Close
'rs.Close
End Sub我发现程序运行起来以后,每当有数据过来,那系统资源就不断被消耗,虽然每次消耗不多,但时间长了总不是办法,我想每次都把rs.close 和 set rs=nothing, 但是发现我的datagrid就不能显示数据了,另外,即便不让datagrid显示数据,就是把显示的那部分注释掉,还是一样的消耗,并且,一到rs.close就出错,大家帮帮忙啊~
解决方案 »
- 枚举产生数列的问题
- 问有没有好的通用数据库类或控件?
- 关于vb打印的2个小问题,在线给分!!!我穷的只剩下1000分了!!!!!急!急!急!
- MSHFlexGrid 两列以上排序?
- 如何才能做出WinAmp中浏览Skins目录那样的目录选择框。马上给分(100分)
- 怎样替换UserControl的DragDrop事件,即把UserControl中的一个标准控件的DragDrop事件传出来代替默认的用户控件事件。
- 请高手指点:怎样保护存储过程的代码不被修改或查阅?
- 急!!!也许是送分题!(在线等待)……
- 用什么可以将应用直接打包成一个EXE安装文件?(要比较简单的、免费或低价的)
- VB调用VC编写的控件,在编译环境中运行正常,编译为EXE文件后运行时出错
- 实时错误 "1309"是什么错误,都没有错误描述
- 关于Combo的索引的问题,换成它就不行了!
每次数据触发都创建新的Connection和打开数据集!
应保持数据集打开,而不是每次数据触发都创建新的Connection和打开数据集!
rs.close
conn1.close2.
strInsert = "insert into GprsTest(记录时间,DateRec) values(' " & Now & " ',' " & b & " ')"
conn1.excute strinsert3 Set DataGrid.DataSource = rs
datgrid.refresh (或者是update)
这一句可以用
conn1.excute strInsert
来代替另外就是楼上说的
断开一个连接前要先把它的下层对象全部关闭
否则就不要关闭了,直接set nothing就可以
不过好的习惯是关闭掉
可以避免频繁的打开关闭连接带来的资源浪费