我是一名有用的助手,可以进行文本翻译。以下是需要翻译的内容:
设置 ADO 命令的 ActiveConnection = Nothing 是否会关闭底层的 SQL 连接,还是必须显式地关闭连接?
此外,应该将以下行:
我的客户使用经典ASP应用程序时遇到了ASP_0147错误。我首先要检查的是他们是否及时关闭和释放SQL/ADO资源。
他们的代码具有以下模式:
Function GetXXXXRecordSet()
Set objConn = Server.CreateObject("ADODB.Connection")
With objConn
.CursorLocation = 3 ''adUseServer (default)
.ConnectionString = strConnectionString
.Open
End With
Set objCmd = Server.CreateObject("ADODB.Command")
Set objCmd.ActiveConnection = objConn
'' Build command object to call SQL stored proc, snipped for brevity
Set objRs = Server.CreateObject("ADODB.RecordSet")
objRs.Open objCmd, ,3,4 '' Cursor=adOpenStatic, Locktype=adLockBatchOptimistic
'' Return Recordset
Set GetXXXXRecordSet = objRs
If Not objCmd Is Nothing Then
objCmd.ActiveConnection = Nothing '' Should this use a Set statement?
Set objCmd = Nothing
End If
If Not ObjRs Is Nothing The Set objRs = Nothing
End Function
设置 ADO 命令的 ActiveConnection = Nothing 是否会关闭底层的 SQL 连接,还是必须显式地关闭连接?
此外,应该将以下行:
objCmd.ActiveConnection = Nothing
是:
Set objCmd.ActiveConnection = Nothing
奇怪的是,第一个版本没有生成错误,这就是我问的原因。
我已经很久没看ADO了,我的知识有些生疏。