2011-09-14 123 views
1

我通常不處理VBScript和經典ASP,但我必須對我們的舊網站之一進行一些更改。經典ASP VBScript對象數組

我使用SOAP的Web服務來獲取字符串值的數組,但是當我嘗試從傳統的ASP代碼中使用它,它告訴我,這是一個對象

的服務工作,它會返回一個數組字符串,代碼是健全的,我只需要知道如何將它從一個對象更改爲字符串,我認爲。

Web服務的WSDL:

<xs:element name="getProductFunctionsResponse"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

錯誤

對象不是一個集合

傳統的ASP代碼:

result2 = soap.getProductFunctions("AEDO") 
i = 0 
For Each present In result2 
    If mid(user_auth_key,i,1) = 1 Then 
     response.write("success") 
    End If 
    response.write(present) 
    response.write("<br />") 
    i = i+1 
Next 
+1

VBScript是腳本語言,因此無法執行類型轉換,因此問題可能會比您想象的更嚴重。首先,讓我們調試一下:當你有'Response.Write(result2)'你得到了什麼?那麼'Response.Write(CStr(result2))''?最後'Response.Write(TypeName(result2))'?請讓我們知道每一個的輸出,這可能會解決問題。 –

+0

+1影子嚮導。我猜類型名稱是String(),VBScript無法處理它。 (如果我沒有錯)** @ David **您可以添加一個可選參數以向後兼容您的Web服務。如果它是'classic-asp',那麼你的web服務會返回一個分隔字符串,而不是'字符串數組'。你可以在經典的asp中分割返回的值,所以它是可迭代的。 –

+0

嗨,大家好,感謝您的回覆,我將在大約一個小時內看到此內容,並會報告我的進度。 – David

回答

0

你試過USI單詞SET,因爲這是返回一個對象?

SET result2 = soap.getProductFunctions("AEDO")