vb ADODB.Recordset 简单内存释放问题
,这是模块里定义的函数PublicFunctionOpen_rst_from_str(ByValstrAsString)AsADODB.RecordsetOnErrorG...
,这是模块里定义的函数
Public Function Open_rst_from_str(ByVal str As String) As ADODB.Recordset
On Error GoTo er:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open str, conn, , , adCmdText
Set Open_rst_from_str = rs
Exit Function
er:
Open App.Path & "\日志\日志.txt" For Append As #1
Print #1, Now & " 查询出错 :" & err.Description & " sql: " & str
Close #1
End Function
'程序里调用
dim rs As ADODB.Recordset '公共
strSql = "select ……"
Set rs = Open_rst_from_str(strSql)
……
rs.Close
’ strSql = "select ……"
Set rs = Open_rst_from_str(strSql)
……
rs.Close
多次调用后内存就爆满了,我想问,
1如上我的代码怎么释放内存呢?
2哪个地方引起的内存没释放呢?
刚接触vb,望大虾能耐心讲解下,项目里非常非常频繁的使用那个函数,有时候1秒内便查询近10次以上,小程序安装在服务器的,长久下去服务器必死啊。。 展开
Public Function Open_rst_from_str(ByVal str As String) As ADODB.Recordset
On Error GoTo er:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open str, conn, , , adCmdText
Set Open_rst_from_str = rs
Exit Function
er:
Open App.Path & "\日志\日志.txt" For Append As #1
Print #1, Now & " 查询出错 :" & err.Description & " sql: " & str
Close #1
End Function
'程序里调用
dim rs As ADODB.Recordset '公共
strSql = "select ……"
Set rs = Open_rst_from_str(strSql)
……
rs.Close
’ strSql = "select ……"
Set rs = Open_rst_from_str(strSql)
……
rs.Close
多次调用后内存就爆满了,我想问,
1如上我的代码怎么释放内存呢?
2哪个地方引起的内存没释放呢?
刚接触vb,望大虾能耐心讲解下,项目里非常非常频繁的使用那个函数,有时候1秒内便查询近10次以上,小程序安装在服务器的,长久下去服务器必死啊。。 展开
1个回答
展开全部
Open_rst_from_str里定义的rs对象与调用时定义的rs对象是两个不同的对象,你在Open_rst_from_str函数里不释放rs对象,会导致连接数据库服务器的session数只增不减,服务器当然会S翘翘啦。
更多追问追答
追问
不好意思啊,我贴上来的时候漏了一句
源码是这样的:
……
rs.LockType = adLockOptimistic
rs.Open str, conn, , , adCmdText
Set Open_rst_from_str = rs
set rs = Nothing
Exit Function
……
调用:
Set rs = Open_rst_from_str(strSql)
……
rs.Close
set rs = nothing
这样依旧爆增内存。
追答
你的conn在哪里定义的?是全程变量吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询