检查是否在vbscript中设置了对象

时间:2011-07-27 18:52:05

标签: object vbscript

我有

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

如果不是,我需要:

set newcon = nothing

如何判断它是对象还是什么?

我试过了

newcon is nothing

我得到object required

如果我尝试isobjectisnullisempty,则不会给出真正的布尔值

有什么我可以尝试的确有效吗?

3 个答案:

答案 0 :(得分:2)

如果您的代码类似于

,则会收到错误对象
Dim Obj
MsgBox Obj Is Nothing

这里,在上面的代码中你没有用任何对象初始化Obj,如果你试图销毁一个不存在或初始化的对象,那么很明显你会得到一个错误“Object required”来销毁那个对象。

现在尝试以下

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 :(得分:1)

我相信你在使用Is Nothing进行测试之前意外改变了newcon:

>> 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(或你真正测试的变量)不会保留一个对象或没有。

答案 2 :(得分:0)

我认为这是一个老问题,然而,发布的答案是正确但不完整的,因此我会发布我的方式:

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)