IIS ASP - Accessing string arrays using classic ASP (vbscript)

This is Interesting: Free IT Magazines  
Home > Archive > IIS ASP > April 2005 > Accessing string arrays using classic ASP (vbscript)





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Accessing string arrays using classic ASP (vbscript)
ASPfool

2005-04-21, 5:55 pm

Hello everyone,

Please help me before I throw my computer out of the window:

I'm working on a web application in classic ASP (vbscript), which is making
calls to some webservices. The calls are made using SOAP - i installed the
SOAP3 toolkit on my windows 2k server to enable this. The webservice calls
are returning String Arrays which I can't seem to do anything useful with.

The call shown below returns a string array with two elements (stored in
returnedData):
....

dim returnedData
returnedData=SoapClient3.createCase(param1, param2, param3)
set SoapClient3=nothing

response.write "<br>"&vartype(returnedData) '8200
response.write "<br>"&typename(returnedData) 'String()
response.write "<br>"&ubound(returnedData) '1
....

The call to the webservice works just fine, and my data is successfully sent
to the other system, however I don't seem to be able to do anything with the
returned string array stored in 'returnedData', bar identify the vartype
(8200) and typename (String()), and number of elements (2 as expected).

As soon as I try something like;

response.write returnedData(1) '(line 58)

I get the error:

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch
/bwc/ordercomplete.asp, line 58

All other attempts to do something useful with the array fail too, e.g.

myString=Join(returnedData)

results in:

Error Type:
Microsoft VBScript runtime (0x800A01CA)
Variable uses an Automation type not supported in VBScript
/bwc/ordercomplete.asp, line 59

I really need to be able to access these array values - and cannot see any
means of doing it. I'd be very grateful for any help,

Regards,
Jon.
Mark Schupp

2005-04-21, 5:55 pm

Have you tried explicitly casting the array element to a string?

Response.Write CStr(returnedData(1))

--
Mark Schupp
Head of Development
Integrity eLearning
www.ielearning.com


"ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
news:284C13AA-3416-40B0-B4B6-398CB70E6F68@microsoft.com...
> Hello everyone,
>
> Please help me before I throw my computer out of the window:
>
> I'm working on a web application in classic ASP (vbscript), which is

making
> calls to some webservices. The calls are made using SOAP - i installed

the
> SOAP3 toolkit on my windows 2k server to enable this. The webservice

calls
> are returning String Arrays which I can't seem to do anything useful with.
>
> The call shown below returns a string array with two elements (stored in
> returnedData):
> ...
>
> dim returnedData
> returnedData=SoapClient3.createCase(param1, param2, param3)
> set SoapClient3=nothing
>
> response.write "<br>"&vartype(returnedData) '8200
> response.write "<br>"&typename(returnedData) 'String()
> response.write "<br>"&ubound(returnedData) '1
> ...
>
> The call to the webservice works just fine, and my data is successfully

sent
> to the other system, however I don't seem to be able to do anything with

the
> returned string array stored in 'returnedData', bar identify the vartype
> (8200) and typename (String()), and number of elements (2 as expected).
>
> As soon as I try something like;
>
> response.write returnedData(1) '(line 58)
>
> I get the error:
>
> Error Type:
> Microsoft VBScript runtime (0x800A000D)
> Type mismatch
> /bwc/ordercomplete.asp, line 58
>
> All other attempts to do something useful with the array fail too, e.g.
>
> myString=Join(returnedData)
>
> results in:
>
> Error Type:
> Microsoft VBScript runtime (0x800A01CA)
> Variable uses an Automation type not supported in VBScript
> /bwc/ordercomplete.asp, line 59
>
> I really need to be able to access these array values - and cannot see any
> means of doing it. I'd be very grateful for any help,
>
> Regards,
> Jon.



ASPfool

2005-04-22, 7:52 am

Thanks for your input Mark.

Response.Write CStr(returnedData(1)) 'line 58

results in....

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch
/bwc/ordercomplete.asp, line 58

Any more ideas anyone?

"Mark Schupp" wrote:

> Have you tried explicitly casting the array element to a string?
>
> Response.Write CStr(returnedData(1))
>
> --
> Mark Schupp
> Head of Development
> Integrity eLearning
> www.ielearning.com
>
>
> "ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
> news:284C13AA-3416-40B0-B4B6-398CB70E6F68@microsoft.com...
> making
> the
> calls
> sent
> the
>
>
>

Mark Schupp

2005-04-22, 6:00 pm

Unfortunately I have never done anything with SOAP. I just had a quick look
at the help file and it looks like you can modify the "type mapper". That
may be the approach you need to take.

It also appears that there are ways to get the data back as a list of XML
nodes.

First I would try to get the raw XML back and see what it looks like.

--
--Mark Schupp
Head of Development
Integrity eLearning
www.ielearning.com

"ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
news:A74C3967-1AEC-4035-9AEC-4F34A854CB01@microsoft.com...[vbcol=seagreen]
> Thanks for your input Mark.
>
> Response.Write CStr(returnedData(1)) 'line 58
>
> results in....
>
> Error Type:
> Microsoft VBScript runtime (0x800A000D)
> Type mismatch
> /bwc/ordercomplete.asp, line 58
>
> Any more ideas anyone?
>
> "Mark Schupp" wrote:
>



ASPfool

2005-04-25, 7:55 am

Hi Mark,

Thanks again for the reply. I'll look into the type mapper options... In
terms of 'getting the raw xml back' - would something like this do the trick?


dim oDOM
Set oDOM = Server.CreateObject("MSXML2.DOMDocument.4.0")
oDOM.loadXML(SoapClient3.createCase(param1, param2, param3))
response.write(oDOM.XML)

Cheers,
Jon.

"Mark Schupp" wrote:

> Unfortunately I have never done anything with SOAP. I just had a quick look
> at the help file and it looks like you can modify the "type mapper". That
> may be the approach you need to take.
>
> It also appears that there are ways to get the data back as a list of XML
> nodes.
>
> First I would try to get the raw XML back and see what it looks like.
>
> --
> --Mark Schupp
> Head of Development
> Integrity eLearning
> www.ielearning.com
>
> "ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
> news:A74C3967-1AEC-4035-9AEC-4F34A854CB01@microsoft.com...
>
>
>
>

Mark Schupp

2005-04-25, 5:53 pm

check the soap toolkit help file. There was something about it returning a
nodelist instead of a specific variant type if there was no type mapper
defined in the configuration files.

--
Mark Schupp



"ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
news:935953AE-F658-49AE-9F58-E85A94FC78C3@microsoft.com...
> Hi Mark,
>
> Thanks again for the reply. I'll look into the type mapper options... In
> terms of 'getting the raw xml back' - would something like this do the

trick?[vbcol=seagreen]
>
>
> dim oDOM
> Set oDOM = Server.CreateObject("MSXML2.DOMDocument.4.0")
> oDOM.loadXML(SoapClient3.createCase(param1, param2, param3))
> response.write(oDOM.XML)
>
> Cheers,
> Jon.
>
> "Mark Schupp" wrote:
>
look[vbcol=seagreen]
That[vbcol=seagreen]
XML[vbcol=seagreen]
is[vbcol=seagreen]
installed[vbcol=seagreen]
webservice[vbcol=seagreen]
useful[vbcol=seagreen]
(stored[vbcol=seagreen]
successfully[vbcol=seagreen]
expected).[vbcol=seagreen]
e.g.[vbcol=seagreen]
see[vbcol=seagreen]


ASPfool

2005-04-25, 5:53 pm

Thanks Mark. In the end I felt that it was too difficult to sort this within
classic asp, so with some wonderful fudging, I've sent the data to an
intermediary asp.net file, made by web service call, and forwarded the
returned values to my classic asp app. In future, I think i'll write
everything in .net.... I guess its time to abandon the classic asp ship!

Thanks again for all your input,
regards,
Jon.

"Mark Schupp" wrote:

> check the soap toolkit help file. There was something about it returning a
> nodelist instead of a specific variant type if there was no type mapper
> defined in the configuration files.
>
> --
> Mark Schupp
>
>
>
> "ASPfool" <ASPfool@discussions.microsoft.com> wrote in message
> news:935953AE-F658-49AE-9F58-E85A94FC78C3@microsoft.com...
> trick?
> look
> That
> XML
> is
> installed
> webservice
> useful
> (stored
> successfully
> expected).
> e.g.
> see
>
>
>

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com