【问题标题】:How to check if object is inside Application object如何检查对象是否在应用程序对象内
【发布时间】:2015-12-08 06:07:36
【问题描述】:

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

Microsoft VBScript 运行时错误“800a01a8”

需要对象:'Application(...)'

/include/setup.asp,第 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 = Application("ConnString")
  • 问题是 Application("ConnString") 包含连接 string 而不是 object 因此不应使用 Set。仅使用Set 将对象实例存储在变量中。

标签: vbscript asp-classic


【解决方案1】:

这里的问题是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

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多