2011-09-14 84 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")