2011-09-14 13 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 **ウェブサービスとの下位互換性のために、もう1つのオプションのパラメータを追加することができます。 'classic-asp'の場合、Webサービスは' array of string'の代わりに区切られた文字列を返します。そして、あなたは古典的なASPで返された値を分割することができるので、iterableです。 –

+0

お返事いただきありがとうございます。私は約1時間でこれを見て、進捗状況を報告します。 – David

答えて

0

あなたはUSIを試してみましたこれはオブジェクトを返すのでSETという語を使用しますか?

SET result2 = soap.getProductFunctions("AEDO") 
関連する問題