2015-12-07 229 views
0

裏面我認爲這將是容易的,但下面的代碼給...如何檢查對象是Application對象

Microsoft VBScript運行時錯誤「800a01a8」所需的

對象:「應用程序(。 ..)」

/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是另一個功能。

我該如何解決這個問題?

+0

可能的複製[檢查如果一個對象在VBScript存在(http://stackoverflow.com/questions/4100506/check-if-an-object-exists-in-vbscript) – Dijkgraaf

+1

這一個.. 。設置connectionString = Application(「ConnString」) –

+1

問題是'Application(「ConnString」)''包含一個'string'而不是'object'的連接,所以'Set'不應該被使用。只能使用'Set'來存儲變量中的對象實例。 – Lankymart

回答

1

這裏的問題是connectionString當變量事實上包含string時,將被視爲Object

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 
+0

太好了,謝謝.. –