Я поддерживаю некоторые классические ASP-страницы, одна из которых использует и повторно использует объект connи удаляет его либо после завершения обработки страницы .asp, либо непосредственно перед перенаправлением страницы на другую страницу.
<%
dim conn
...
set conn = server.CreateObject("adodb.connection")
...
sub cleanUp()
conn.Close
set conn = nothing
end sub
...
sub pageRedirect(url)
call cleanUp()
response.Redirect url : response.End
end sub
...
' very end of file
call cleanUp()%>
Я обнаружил, что если есть перенаправление, я получаю ошибку сервера прямо в строке conn.Close
, Ошибка выполнения Microsoft VBScript '800a01a8' Object required.Я полагаю, что нет причин, по которым эта строка будет выполняться более одного раза, но на всякий случай я переписал функцию
sub cleanUp()
if(not (conn Is Nothing)) then
conn.Close
set conn = Nothing
end if
end sub
. Но я все еще получаю ту же самую ошибку, теперь в строке if(not (conn Is Nothing))
!! Я думал, что цель Is Nothing
состояла в том, чтобы выполнить тест перед использованием имени переменной conn, чтобы предотвратить эту ошибку «требуется объект», но тест выдает ту же ошибку.
Какой другой тест я могу использовать, чтобы убедиться, что на conn не ссылаются, если для него уже было установлено значение Nothing?