У меня есть клиент, у которого классическое приложение ASP генерирует ошибки ASP_0147. Первое, что я проверю, это то, что они закрывают и освобождают ресурсы SQL/ADO.Выполняет ли настройку ActiveConnection команды ADO = Ничто не закрывает базовое SQL-соединение?
Их код имеет следующую закономерность:
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
не ли настройки антидопинговой командования ActiveConnection = Nothing близко лежащий в основе SQL Connection или же, что должны быть закрыты явно?
Также следует линия:
objCmd.ActiveConnection = Nothing
быть:
Set objCmd.ActiveConnection = Nothing
Как ни странно первая версия не генерирует ошибку, которая является, почему я спрашиваю.
Это было так давно, что я посмотрел на ADO, и мои знания несколько ржавые.
Должно быть: Установить objCmd.ActiveConnection = Ничего действительно – Younes
@Kev: Мне любопытно, добавила ли связь. Закрыто для кода выше, исправить проблему? – AnthonyWJones
@ AnthonyWJones - Я передал рекомендации клиенту, теперь просто подождал и посмотрел. – Kev