проверить, установлен ли объект в vbscript - PullRequest
3 голосов
/ 27 июля 2011

у меня

set newcon = Server.CreateObject("ADODB.Connection")

Если это не так, мне нужно:

set newcon = nothing

как мне узнать, объект это или нет?

Я пытался

newcon is nothing

Я получаю object required

Если я попытаюсь isobject или isnull или isempty, это не даст истинного значения bool val для него

Могу ли я попробовать что-нибудь, что действительно работает?

Ответы [ 3 ]

2 голосов
/ 11 июня 2013

Вы получите объект ошибки, необходимый, если ваш код похож на

Dim Obj
MsgBox Obj Is Nothing

Здесь, в приведенном выше коде вы не инициализировали Obj с каким-либо объектом, и если вы пытаетесь уничтожить объект, который не являетсясуществующий или инициализированный, тогда, очевидно, вы получите ошибку «Требуется объект» для уничтожения этого объекта.

Теперь попробуйте ниже

Dim Obj
Set Obj = CreateObject("Excel.Application") 'Creating an object
MsgBox Obj Is Nothing 'Returns False
Set Obj = Nothing 'Destroying an object
MsgBox Obj Is Nothing 'Returns True

Что мы сделали в приведенном выше коде, Мы создалиобъект, используя оператор Set Obj = CreateObject("Excel.Application").Затем мы проверяем, существует ли созданный нами объект или нет, используя оператор MsgBox Obj Is Nothing.Возвращает «True», поскольку объект существует.Теперь, когда возникло требование, мы собираемся разъединить, то есть уничтожить объект, используя оператор Set Obj = Nothing.В последнем утверждении MsgBox Obj Is Nothing мы снова проверяем, не связан ли объект Obj, т.е. уничтожен или нет.

1 голос
/ 28 июля 2011

Я полагаю, что вы случайно изменили newcon перед тестированием с помощью Is Nothing:

>> set newcon = CreateObject("ADODB.Connection")
>> WScript.Echo 0, IsObject(newcon)
>>
0 -1
>> set newcon = Nothing
>> WScript.Echo 1, IsObject(newcon)
>>
1 -1
>> WScript.Echo 2, newcon Is Nothing
>>
2 -1
>> newcon = "oops"
>> WScript.Echo 3, newcon Is Nothing
>>
Error Number:       424
Error Description:  Object required
>> WScript.Echo 4, newconn Is Nothing ' oops
>>
Error Number:       424
Error Description:  Object required

Если вы получаете сообщение об ошибке 434, то newcon (или переменная, которую вы действительно тестируете) не содержит объект или Nothing.

0 голосов
/ 11 июня 2013

Я вижу, что это старый вопрос, однако опубликованные ответы верны, но неполны, поэтому я опубликую свой путь:

Dim Obj
Set Obj = CreateObject("ADODB.Connection")
If IsObject(Obj) Then
    If Not Obj Is Nothing Then
        Set Obj = Nothing
    End If
End If
WScript.Echo "Is Nothing: " & (Obj Is Nothing)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...