如下是模块里定义的函数,请问该怎么解决相应问题?

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次以上,小程序安装在服务器的,长久下去服务器必死啊。。

心有法竹
浏览 149回答 1
1回答

猛跑小猪

Open_rst_from_str里定义的rs对象与调用时定义的rs对象是两个不同的对象,你在Open_rst_from_str函数里不释放rs对象,会导致连接数据库服务器的session数只增不减,服务器当然会S翘翘啦。
打开App,查看更多内容
随时随地看视频慕课网APP