如何检查对象是否在应用程序对象内

How to check if object is inside Application object

我认为这很容易,但下面的代码给出了...

Microsoft VBScript runtime error '800a01a8'

Object required: 'Application(...)'

/include/setup.asp, line 7

Function getConnectionString

    Dim connectionString

    Set connectionString = Application("ConnString")

    If connectionString Is Nothing Then

        Set connectionString = loadConnectionString

        Application.Lock
        Application("ConnString") = connectionString
        Application.Unlock

    End If

    getConnectionString = connectionString

End Function

loadConnectionString是另一个函数。

我该如何解决这个问题?

这里的问题是 connectionString 变量被视为 Object 而实际上它包含 string.

Set 应该只用于存储 Object 变量,这也适用于 Application("varname") 样式变量。删除 Is Nothing 检查,因为这也指的是 Object 变量,并将其替换为 Len(connectionString) < 1 检查。

Function getConnectionString() 
    Dim connectionString
    connectionString = Application("ConnString")

    If Len(connectionString & "") < 1 Then
        'loadConnectionString() should return a string not an Object
        'may need to be amended.
        connectionString = loadConnectionString()
        Application.Lock
        Application("ConnString") = connectionString
        Application.Unlock
    End If
    getConnectionString = connectionString
End Function