For Loop Through Recordset

Discussion in 'ASP General' started by !TG, Jun 23, 2005.

  1. !TG

    !TG Guest

    I currently use Do while loop, but I'd rather use a For Loop though I
    have never gotten the hang of them.
    Would some one please be so kind as to show me how to loop through a
    recordset.
     
    !TG, Jun 23, 2005
    #1
    1. Advertising

  2. !TG wrote:
    > I currently use Do while loop, but I'd rather use a For Loop though I
    > have never gotten the hang of them.
    > Would some one please be so kind as to show me how to loop through a
    > recordset.


    Why would you rather use a For loop?

    Anyways, looping through a recordset may not be the most efficient way for
    you to do what you need to do. See here for alternatives:
    http://www.aspfaq.com/show.asp?id=2467

    Bob Barrows
    --
    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], Jun 23, 2005
    #2
    1. Advertising

  3. !TG

    !TG Guest

    Bob Barrows [MVP] wrote:
    > !TG wrote:
    >
    >>I currently use Do while loop, but I'd rather use a For Loop though I
    >>have never gotten the hang of them.
    >>Would some one please be so kind as to show me how to loop through a
    >>recordset.

    >
    >
    > Why would you rather use a For loop?
    >
    > Anyways, looping through a recordset may not be the most efficient way for
    > you to do what you need to do. See here for alternatives:
    > http://www.aspfaq.com/show.asp?id=2467
    >
    > Bob Barrows

    For practice sake
     
    !TG, Jun 23, 2005
    #3
  4. !TG

    McKirahan Guest

    "!TG" <> wrote in message
    news:...
    > Bob Barrows [MVP] wrote:
    > > !TG wrote:
    > >
    > >>I currently use Do while loop, but I'd rather use a For Loop though I
    > >>have never gotten the hang of them.
    > >>Would some one please be so kind as to show me how to loop through a
    > >>recordset.

    > >
    > >
    > > Why would you rather use a For loop?
    > >
    > > Anyways, looping through a recordset may not be the most efficient way

    for
    > > you to do what you need to do. See here for alternatives:
    > > http://www.aspfaq.com/show.asp?id=2467
    > >
    > > Bob Barrows

    > For practice sake


    Use GetRows (with a For Loop) instead of looping through a RecordSet:

    http://www.learnasp.com/advice/whygetrows.asp
     
    McKirahan, Jun 23, 2005
    #4
  5. !TG wrote:
    > Bob Barrows [MVP] wrote:
    >> !TG wrote:
    >>
    >>> I currently use Do while loop, but I'd rather use a For Loop though
    >>> I have never gotten the hang of them.
    >>> Would some one please be so kind as to show me how to loop through a
    >>> recordset.

    >>
    >>
    >> Why would you rather use a For loop?
    >>
    >> Anyways, looping through a recordset may not be the most efficient
    >> way for you to do what you need to do. See here for alternatives:
    >> http://www.aspfaq.com/show.asp?id=2467
    >>


    If, by "For loop" you mean a "For Each" loop, then you are out of louck. A
    recordset does not expose its Records collection (which is not really a
    collection - note: there is no "Records" property in a Recordset object) via
    the IEnumerable interface, so "For Each" cannot be used to loop through the
    records of a recordset the way it can be used to loop through its Fields
    collection:

    for each fld in rs.Fields
    response.write fld.Name & ": " & fld.Value & "<BR>"
    next

    If you are talking about a "For i=0 to something" loop, then you need to use
    a cursortype that supports bookmarks. This is because you need a way to
    1. Tell the recordset which record to point to, and
    2. Tell the loop to stop at the last record, using the recordcount (which is
    only available with static, keyset and dynamic cursors)

    Anyways, if you set the cursortype to either 1(keyset), 2(dynamic) or 3
    (static), or set the cursorlocation to 3 (adUseClient), guaranteeing that
    you will get a static cursor, before you open the recordset, you will
    receive a bookmarkable cursor which will allow you to do this:

    rows=rs.RecordCount
    if rows > 0 then
    for i = 1 to rows
    rs.AbsolutePosition=i
    'do stuff with current record
    next
    end if

    Such cursortypes are more expensive (consume more system resources) than the
    default forwardonly cursor. If you are going to loop through a recordset,
    then use the simple "Do While Not rs.EOF...Loop" or "Do Until rs.EOF
    ....Loop" loops - they will be much more efficient. Better yet, use GetRows
    or GetString where appropriate.

    HTH,
    Bob Barrows

    --
    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], Jun 24, 2005
    #5
    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. Steven K

    Loop Through a recordset

    Steven K, Mar 3, 2004, in forum: ASP .Net
    Replies:
    1
    Views:
    4,302
    Kirk Graves
    Mar 4, 2004
  2. Gabriel Lozano-Morán

    How to loop a recordset and display html with conditions

    Gabriel Lozano-Morán, Jul 6, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    551
    Cactus Corp.
    Jul 6, 2005
  3. Roedy Green
    Replies:
    3
    Views:
    436
    Mike Schilling
    Sep 13, 2008
  4. Hung Huynh
    Replies:
    8
    Views:
    309
    Bob Barrows
    Sep 24, 2003
  5. Isaac Won
    Replies:
    9
    Views:
    383
    Ulrich Eckhardt
    Mar 4, 2013
Loading...

Share This Page