Confused with the type mismatch error

Ask a Question related to ASP, Design and Development.

  1. #1

    Default Re: Confused with the type mismatch error

    I tried your simple example and got no type mismatch. I even modified it so
    that I was comparing a string to a number and got no type mismatch (it
    returns "Not Equal", but that's to be expected when comparing a string to a
    number):
    dim a, b
    a = "123456"
    b = a
    a = clng(123456)
    if a <> b Then
    Response.Write "Not equal"
    else
    Response.Write "Equal"
    end if

    I cannot venture a guess as to the cause of your mismatch: perhaps you need
    to initialize the PreviousOne variable with a value before starting the
    loop.

    I question why you think being forced to explicitly cast your variables
    using CStr is a "bad" thing ... I know you're not saying it's "bad": you're
    simply asking why you have to do it in this case. My suggestion would be to
    make it a habit: something you do more often than not, instead of only when
    you have to.

    Bob Barrows


    cschang wrote:
    > Why a variable assigned as '123456' can be mismatched with another
    > variable also assign as '123456' in the following example
    > dim a, b
    > a = '123456'
    > b = a
    > a = '123456'
    > if a <> b Then
    > ....
    >
    > ASP engine return an error " Type mismatch" for a <> b. I had to
    > apply Cstr() to both a and b to compare, otherwise it always generates
    > the same error, even only the Cstr() on one side of the comparison.
    >
    > The part of the real codes of my page
    >
    > Dim previousOne, rowControl
    > rowControl = 0
    >
    > while not rs.EOF and rowControl < rs.PageSize
    > If Not isEmpty(previousOne) Then
    > If Cstr(previousOne) <> Cstr(rs(1)) Then
    > Response.Write ...
    > End If
    > end If
    > Response.Write ...
    > ..
    > previousOne = rs(1)
    > rs.MoveNext
    > rowControl = rowControl + 1
    > Wend
    >
    > ' rs is the recordSet return from Oracle procdure. The specific
    > record is defined as varchar in database.
    >
    > CS


    Bob Barrows Guest

  2. Similar Questions and Discussions

    1. Type mismatch error
      This query works fine on a live server using an MSSQL database: <cfquery name="qIndex" datasource="#appDSN#" username="shampoo"...
    2. data type mismatch error...
      HI guys, getting pretty stressed with this haha! it's probably something simple...right I have this registration form that does multiple checks...
    3. 0x800A000D - Type Mismatch Error
      I am not sure what is goint on. Here's my code inWeekStart = "11" inWeekEnd = "14" Compyear = "2003" Dim rsSQL, strSQL, cmSQL dim...
    4. Type mismatch Session error
      You'll need to post a snippet of relevant code. Ray at work "TD" <TurboDuster@noyahoospam.com> wrote in message...
    5. Long Raw Type Mismatch error
      I'm new to using long raw fields with ASP. I know it would be easier to leave the files on the file system, but the client wants them in the...
  3. #2

    Default Re: Confused with the type mismatch error

    Perhaps this is another one of those situations where the value from the
    recordset is null.

    <%
    Dim x
    x = null
    y = null
    If x = y Then
    response.write "Yes, null = null."
    Else
    response.write "No, null <> null."
    End If

    response.write "<br>"

    x = x & ""
    y = y & ""
    If x = y Then
    response.write "Yes, null+"""" = null+""""."
    Else
    response.write "No, null+"""" <> null+""""."
    End If

    %>

    Ray at home

    "Bob Barrows" <reb_01501@yahoo.com> wrote in message
    news:OifORfNXDHA.2576@TK2MSFTNGP09.phx.gbl...
    > I tried your simple example and got no type mismatch. I even modified it
    so
    > that I was comparing a string to a number and got no type mismatch (it
    > returns "Not Equal", but that's to be expected when comparing a string to
    a
    > number):
    >
    > >
    > > ASP engine return an error " Type mismatch" for a <> b. I had to
    > > apply Cstr() to both a and b to compare, otherwise it always generates
    > > the same error, even only the Cstr() on one side of the comparison.

    Ray at Guest

  4. #3

    Default Re: Confused with the type mismatch error

    "cschang" wrote:
    >
    > while not rs.EOF and rowControl < rs.PageSize
    > If Not isEmpty(previousOne) Then
    > If Cstr(previousOne) <> Cstr(rs(1)) Then
    > Response.Write ...
    > End If
    > end If
    > Response.Write ...
    > ..
    > previousOne = rs(1)
    > rs.MoveNext
    > rowControl = rowControl + 1
    > Wend
    Welcome to Default Property Hell. Your problem stems from your mistaken
    belief that rs(1) is a value. It is an object with the default property
    [Value]. To get around your problem, stop using default properties. The
    correct syntax in this case (Assuming an ADODB.Recordset):

    previousOne = rs.Fields(1).Value



    --
    Dave Anderson

    Unsolicited commercial email will be read at a cost of $500 per message. Use
    of this email address implies consent to these terms. Please do not contact
    me directly or ask me to contact you directly for assistance. If your
    question is worth asking, it's worth posting.


    Dave Anderson Guest

  5. #4

    Default Re: Confused with the type mismatch error

    Dave:
    You are perfectly right. I tested and found out in my case, all I had to do
    was to use previousOne <> rs(1).value and the problem went away. Thank very
    much.

    C Chang

    Dave Anderson wrote:
    > "cschang" wrote:
    > >
    > > while not rs.EOF and rowControl < rs.PageSize
    > > If Not isEmpty(previousOne) Then
    > > If Cstr(previousOne) <> Cstr(rs(1)) Then
    > > Response.Write ...
    > > End If
    > > end If
    > > Response.Write ...
    > > ..
    > > previousOne = rs(1)
    > > rs.MoveNext
    > > rowControl = rowControl + 1
    > > Wend
    >
    > Welcome to Default Property Hell. Your problem stems from your mistaken
    > belief that rs(1) is a value. It is an object with the default property
    > [Value]. To get around your problem, stop using default properties. The
    > correct syntax in this case (Assuming an ADODB.Recordset):
    >
    > previousOne = rs.Fields(1).Value
    >
    > --
    > Dave Anderson
    >
    > Unsolicited commercial email will be read at a cost of $500 per message. Use
    > of this email address implies consent to these terms. Please do not contact
    > me directly or ask me to contact you directly for assistance. If your
    > question is worth asking, it's worth posting.
    cschang Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139