Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Getting the number of records in a recordset

Getting the number of records in a recordset

Scheduled Pinned Locked Moved C / C++ / MFC
databasequestion
14 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P psramu

    U just move to the first record and now loop until the end of records take a variable and increment it inside the loop with MOVENEST() function. the variable holds the total records count

    S Offline
    S Offline
    SWDevil
    wrote on last edited by
    #5

    I don't understand what you mean... can you write some code maybe? and by the way, I would rather not use a loop - it's not very efficient... I need an efficient solution :)

    1 Reply Last reply
    0
    • M Monty2

      Been a long time since i programmed in ADO but IIRC you don't need to

      while (!pSet->IsEOF()) //pSet is a pointer to the recordset
      pSet->MoveNext();

      pSet->MoveLast();
      pSet->GetRecordCount();//something like this

      Hope it helps


      The statement below is true.
      The statement above is false.

      D Offline
      D Offline
      David Crow
      wrote on last edited by
      #6

      Monty2 wrote:

      pSet->GetRecordCount();//something like this

      This will simply give you the “high water mark” — the highest-numbered record yet seen as the user moves through the records.


      "The largest fire starts but with the smallest spark." - David Crow

      S 1 Reply Last reply
      0
      • S SWDevil

        hi, I have a recordset which contains the results of a query, and I want to get the number of records in the recordset. I tried to use the GetRecordCount function, but I understood that I have to go through the whole recordset in order to get the number of records. So I have this loop in my code which is very inefficient: while (!pSet->IsEOF()) //pSet is a pointer to the recordset pSet->MoveNext(); I thouhgt to do an SQL query using COUNT, but it requires a simple query (something like: SELECT COUNT (*) FROM Table1 ) and my query is not a simple one. It contains selection of a number of records, and Inner joins of tables and an ORDER BY clause. Is there another way to get the number of records in a recordset? Any suggestions?

        D Offline
        D Offline
        David Crow
        wrote on last edited by
        #7

        SWDevil wrote:

        Is there another way to get the number of records in a recordset?

        You can use JOINs with the COUNT() clause. Simply put COUNT() around the columns that you are querying.


        "The largest fire starts but with the smallest spark." - David Crow

        S 1 Reply Last reply
        0
        • D David Crow

          Monty2 wrote:

          pSet->GetRecordCount();//something like this

          This will simply give you the “high water mark” — the highest-numbered record yet seen as the user moves through the records.


          "The largest fire starts but with the smallest spark." - David Crow

          S Offline
          S Offline
          SWDevil
          wrote on last edited by
          #8

          Yeah - I know. That's why I need another solution... Is there another way to get the number of records in a recordset other than going through the recordset with a loop or using COUNT? -- modified at 9:23 Tuesday 16th May, 2006

          D 1 Reply Last reply
          0
          • D David Crow

            SWDevil wrote:

            Is there another way to get the number of records in a recordset?

            You can use JOINs with the COUNT() clause. Simply put COUNT() around the columns that you are querying.


            "The largest fire starts but with the smallest spark." - David Crow

            S Offline
            S Offline
            SWDevil
            wrote on last edited by
            #9

            I tried doing that (in SQL server) and it doesn't work...

            D 1 Reply Last reply
            0
            • S SWDevil

              I tried doing that (in SQL server) and it doesn't work...

              D Offline
              D Offline
              David Crow
              wrote on last edited by
              #10

              Ok, so just use COUNT(*), leaving the JOIN and WHERE clauses intact.


              "The largest fire starts but with the smallest spark." - David Crow

              1 Reply Last reply
              0
              • S SWDevil

                Yeah - I know. That's why I need another solution... Is there another way to get the number of records in a recordset other than going through the recordset with a loop or using COUNT? -- modified at 9:23 Tuesday 16th May, 2006

                D Offline
                D Offline
                David Crow
                wrote on last edited by
                #11

                SWDevil wrote:

                Is there another way to get the number of records in a recordset other than going through the recordset with a loop or using COUNT?

                Have you considered/tried a stored procedure?


                "The largest fire starts but with the smallest spark." - David Crow

                S 1 Reply Last reply
                0
                • D David Crow

                  SWDevil wrote:

                  Is there another way to get the number of records in a recordset other than going through the recordset with a loop or using COUNT?

                  Have you considered/tried a stored procedure?


                  "The largest fire starts but with the smallest spark." - David Crow

                  S Offline
                  S Offline
                  SWDevil
                  wrote on last edited by
                  #12

                  Ummmm - no. don't really know what that is...

                  D 1 Reply Last reply
                  0
                  • S SWDevil

                    Ummmm - no. don't really know what that is...

                    D Offline
                    D Offline
                    David Crow
                    wrote on last edited by
                    #13

                    If you are going to be using SQL Server for anything othern than a novelty, I consider it a must-have in the developer's toolbox. http://www.awprofessional.com/articles/article.asp?p=25288&rl=1[^] http://databases.about.com/od/sqlserver/l/aastoredprocs.htm[^] http://www.sqlteam.com/item.asp?ItemID=563[^] http://www.codeproject.com/database/mssqltutorial.asp[^]


                    "The largest fire starts but with the smallest spark." - David Crow

                    S 1 Reply Last reply
                    0
                    • D David Crow

                      If you are going to be using SQL Server for anything othern than a novelty, I consider it a must-have in the developer's toolbox. http://www.awprofessional.com/articles/article.asp?p=25288&rl=1[^] http://databases.about.com/od/sqlserver/l/aastoredprocs.htm[^] http://www.sqlteam.com/item.asp?ItemID=563[^] http://www.codeproject.com/database/mssqltutorial.asp[^]


                      "The largest fire starts but with the smallest spark." - David Crow

                      S Offline
                      S Offline
                      SWDevil
                      wrote on last edited by
                      #14

                      Thanks - I'll look at the links :)

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups