For Loop Through Recordset

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • !TG

    For Loop Through Recordset

    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.
  • Bob Barrows [MVP]

    #2
    Re: For Loop Through Recordset

    !TG wrote:[color=blue]
    > 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.[/color]

    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:


    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.


    Comment

    • !TG

      #3
      Re: For Loop Through Recordset

      Bob Barrows [MVP] wrote:[color=blue]
      > !TG wrote:
      >[color=green]
      >>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.[/color]
      >
      >
      > 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[/color]
      For practice sake

      Comment

      • McKirahan

        #4
        Re: For Loop Through Recordset

        "!TG" <2734567183@sou thwestfunding.c om> wrote in message
        news:ewISu3DeFH A.3880@tk2msftn gp13.phx.gbl...[color=blue]
        > Bob Barrows [MVP] wrote:[color=green]
        > > !TG wrote:
        > >[color=darkred]
        > >>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.[/color]
        > >
        > >
        > > Why would you rather use a For loop?
        > >
        > > Anyways, looping through a recordset may not be the most efficient way[/color][/color]
        for[color=blue][color=green]
        > > you to do what you need to do. See here for alternatives:
        > > http://www.aspfaq.com/show.asp?id=2467
        > >
        > > Bob Barrows[/color]
        > For practice sake[/color]

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




        Comment

        • Dave Anderson

          #5
          Re: For Loop Through Recordset

          !TG wrote:[color=blue]
          > 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.[/color]

          Like this?

          for (var Employees=[]; !RS.EOF; RS.MoveNext()) {
          Employees.push( {
          LastName:RS.Fie lds("LastName") .Value,
          FirstName:RS.Fi elds("FirstName ").Value,
          Address:RS.Fiel ds("Address").V alue,
          Phone:RS.Fields ("Phone").Value ,
          SSN:RS.Fields(" SSN").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.


          Comment

          • Bob Barrows [MVP]

            #6
            Re: For Loop Through Recordset

            !TG wrote:[color=blue]
            > Bob Barrows [MVP] wrote:[color=green]
            >> !TG wrote:
            >>[color=darkred]
            >>> 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.[/color]
            >>
            >>
            >> 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
            >>[/color][/color]

            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.RecordC ount
            if rows > 0 then
            for i = 1 to rows
            rs.AbsolutePosi tion=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"


            Comment

            Working...