Type mismatch line 0

I have this in my ASP page:

session("test") = "Testing"
session("groupselectedname") = groupselectedname
Response.Write session("test")
Response.Write session("groupselectedname")

The last line returns this error:

Testing
Response object error 'ASP 0106 : 80020005'

Type Mismatch

ASPDisplay.asp, line 0
An unhandled data type was encountered.

If my variable prints out fine, why does the second one bomb out?  I know, your next question is "what is the value of groupselectedname?"  I don't know, any attempt to display or convert its value returns the above error.  Why can't I do anything with that value?

Thanks!
MIKEVAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

alorentzCommented:
Well where do you set the value of groupselectedname?  You have to have some idea of what's in it?

Response.write "Value: " & groupselectedname

Do that give an error too?
0
MIKEVAuthor Commented:
Same error.
0
MIKEVAuthor Commented:
Here's the line that assigns it:

groupselectedname = session("groupselectedname")

if I do right after it:

response.write session("groupselectedname") ' or
response.write groupselectedname

I get the above error each time.  The code takes the current selection, modifies it and then re-assigns it back to session memory.  Later on in the code it does the opposite, as above.  No errors are ever returned from the code unless I try to print any of the values.
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

mouattsCommented:
Can you do a
response.write varType(groupselectedname)
I suspect that groupselectedname is an object or binary data (9, 12,13 or 17 will be displayed if I am right.

Steve
0
mouattsCommented:
or 0 if it is empty and 1 if it is null.
0
jitgangulyCommented:
Does ity happen with any session variables or just this one ?
0
alorentzCommented:
So where are you setting session("groupselectedname") initially?  Looks like your setting them back and forth, don't understand!
0
sknightCommented:
I'd recommend dimming your variables first:

Dim groupselectedname
response.write(groupselectedname)
response.end
session("test") = "Testing"
session("groupselectedname") = groupselectedname
Response.Write session("test")
Response.Write session("groupselectedname")

Try that code, it should simply write the value of groupselectedname to the screen, at least you know what the value is, and you can sort out any datamismatches from there.  The test session is a static bit of text, however the groupselectedname session is a variable, and likelyhood is, it might be empty.
0
MIKEVAuthor Commented:
mouatts:  When I add that line it prints '8204'. (?)
0
alorentzCommented:
An array?  How'd it become an array?
0
alorentzCommented:
Try this:

Response.write "Value: " & groupselectedname(0)
0
mouattsCommented:
Worse still its an array of varients.

Steve
0
alorentzCommented:
OR:

Response.write "Value: " & session("groupselectedname")(0)
0
MIKEVAuthor Commented:
Response.write "Value: " & session("groupselectedname")(0)

returns:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'session(...)'

/ebas/error.asp, line 60


How do you print an element from a session array variable?  These don't work:

session("oldselectedname")(0)
session("oldselectedname(0)")

Any other guesses?  (thx guys)
0
MIKEVAuthor Commented:
This doesn't work:

Dim Myselection
Myselection = session("groupselectedname")

response.write myselection(1) ' Type mismatch

for a=1 to 8
    response.write a & ":" & myselection(a) & "<BR>" ' type mismatch
next
0
alorentzCommented:
This is how:
Response.write "Value: " & session("groupselectedname")(0)
 
But it won't let you access it as an array.

However, where are you assigning either of these variables to an actual value.  In your examples yuo're just setting to each other, without ever putting in a value.

At least do this:

groupselectedname = ""

session("test") = "Testing"
session("groupselectedname") = groupselectedname
Response.Write session("test")
Response.Write session("groupselectedname")
0
mouattsCommented:
It won't work because its a varient as I mentioned earlier. We need to look at where groupselectedname is first initialised.
Steve
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
sknightCommented:
Can you show the code that originally creates the value(s) for groupselectedname ?
0
mouattsCommented:
My comment refers to MIKEVs comment not alorentz's
0
sybeCommented:
the variable "groupselectedname"  is an array.
But it can be an array of anything, it can be an array of arrays or an arry of objects, or a multi-dimensional array. You have to find out what it's elements are.

To find it's dimension, you can use this function:

<%
Function GetArrayDimension(ByVal aArray, ByVal iMax)
    Dim iCount, iTest
    On Error Resume Next
    For iCount = 1 To iMax
        iTest = UBound(aArray,iCount)
        If Err Then Exit For
    Next
    GetArrayDimension = iCount -1
    Err.Clear
End Function
%>
0
MIKEVAuthor Commented:
The real problem is that this entire app was written by a dumbass.  No variable initializations, no code comments and a train of logic that defies.... logic.  He stores dates in text fields, making date based SQL queries more or less impossible.  It's not that he doesn't know how to program, he's been doing it for 40 years and programs like it's still 40 years ago.

However, thanks to all for the suggestions, you did help me understand the syntax and structure he's attempting to use.  I'll split the points as best I can...

Thanks!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.