RS Loop - Numeric value out of range (null)

Discussion in 'ASP General' started by Adotek, Apr 2, 2007.

  1. Adotek

    Adotek Guest

    Hi All,

    I am getting this error:

    Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    [Microsoft][ODBC Microsoft Access Driver]Numeric value out of range
    (null)
    /database/data_entry.asp, line 90

    Line 90 is shown below...

    // count the total records by iterating through the recordset
    for (rsProducts_total=0; !rsProducts.EOF; rsProducts.MoveNext())
    { <---- Line 90
    rsProducts_total++;
    }

    This is an access database, connected to via a DSN.

    Any help will be muchly appreciated! I'm stuck on this one!

    Thanks!
    Simon.
     
    Adotek, Apr 2, 2007
    #1
    1. Advertising

  2. Adotek wrote:
    > Hi All,
    >
    > I am getting this error:
    >
    > Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    > [Microsoft][ODBC Microsoft Access Driver]Numeric value out of range


    Nothing to do with your problem, but:
    http://www.aspfaq.com/show.asp?id=2126

    > (null)
    > /database/data_entry.asp, line 90
    >
    > Line 90 is shown below...
    >
    > // count the total records by iterating through the recordset
    > for (rsProducts_total=0; !rsProducts.EOF; rsProducts.MoveNext())
    > { <---- Line 90
    > rsProducts_total++;
    > }
    >

    I see nothing here that would cause your odbc driver to return an "out
    of range" error. At this point in your code, results have already been
    retrieved into your recordset so there should be nothing here for the
    database engine or the odbc driver to complain about/
    I can only assume that you are mistaken as to which line is actually
    line 90. Do some error-trapping so you can determine the actual source
    of your error.

    However, I will say: this is an insa... I mean ... this is not the
    recommended way to get a record count. If all you are doing is counting
    the records, then you need to let the database engine do it for you:

    sql="select count(*) from table where ... ";
    set rs = conn.execute(sql,0,1);
    rsProducts_total=rs(0).value;


    --
    Microsoft MVP -- ASP/ASP.NET
    Please reply to the newsgroup. The email account listed in my From
    header is my spam trap, so I don't check it very often. You will get a
    quicker response by posting to the newsgroup.
     
    Bob Barrows [MVP], Apr 2, 2007
    #2
    1. Advertising

  3. Adotek

    Adotek Guest

    > > Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    > > [Microsoft][ODBC MicrosoftAccessDriver]Numericvalueoutofrange

    >
    > Nothing to do with your problem, but:http://www.aspfaq.com/show.asp?id=2126

    Yup - Agree! I would do it that way. In this case I am fixing someone
    elses code.


    > line 90. Do some error-trapping so you can determine the actual source
    > of your error.

    How can I error trap in any more detail? Advice here would be
    appreciated.

    > However, I will say: this is an insa... I mean ... this is not the
    > recommended way to get a record count. If all you are doing is counting
    > the records, then you need to let the database engine do it for you:
    >
    > sql="select count(*) from table where ... ";
    > set rs = conn.execute(sql,0,1);
    > rsProducts_total=rs(0).value;

    Again, I agree...no need to loop! (Not my code!)

    Thank you for your reply.
     
    Adotek, Apr 2, 2007
    #3
  4. Adotek wrote:
    >>> Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    >>> [Microsoft][ODBC MicrosoftAccessDriver]Numericvalueoutofrange

    >>
    >> Nothing to do with your problem,
    >> but:http://www.aspfaq.com/show.asp?id=2126

    > Yup - Agree! I would do it that way. In this case I am fixing someone
    > elses code.
    >
    >
    >> line 90. Do some error-trapping so you can determine the actual
    >> source
    >> of your error.

    > How can I error trap in any more detail? Advice here would be
    > appreciated.
    >


    use try ... catch around each line of code that could be generating this
    error. I strongly suspect it is earlier in the process, bpresumably when the
    recordset is being opened. If you can confirm this, then you need to
    concentrate on the sql statement being used to open the recordset. First
    step would be to run that sql statement in Access using the Query Builder.

    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
     
    Bob Barrows [MVP], Apr 3, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    5
    Views:
    27,284
    Mike Schilling
    Mar 29, 2006
  2. Replies:
    5
    Views:
    961
    X-Centric
    Jun 30, 2005
  3. David Bird
    Replies:
    1
    Views:
    231
    Tiago Macedo
    Jun 23, 2008
  4. Replies:
    2
    Views:
    145
    Dr John Stockton
    Apr 1, 2006
  5. Isaac Won
    Replies:
    9
    Views:
    419
    Ulrich Eckhardt
    Mar 4, 2013
Loading...

Share This Page