Print Page | Close Window

Paged RdbQueries

Printed From: IdeaBlade
Category: DevForce
Forum Name: DevForce Classic
Forum Discription: For .NET 2.0
URL: http://www.ideablade.com/forum/forum_posts.asp?TID=40
Printed Date: 12-Jun-2026 at 11:24am


Topic: Paged RdbQueries
Posted By: Customer
Subject: Paged RdbQueries
Date Posted: 06-Jun-2007 at 12:29pm

Question:

How can I use a paged RdbQuery for large result sets?

 




Replies:
Posted By: IdeaBlade
Date Posted: 06-Jun-2007 at 12:30pm

Answer:

Here is sample code demonstrating how to execute a PagedRdbQuery, which is the ideal query to use for returning large result sets.

This example can also be found in the IdeaBlade DevForce Help Reference (may vary slightly):

 

    public void SamplePagedQuery() {

      PersistenceManager pm = PersistenceManager.DefaultManager;

 

      // Query orders in descending date sequence.

      RdbQuery aQuery = new RdbQuery(typeof(Order));

      aQuery.AddOrderBy(Order.OrderDateEntityColumn, ListSortDirection.Descending);

 

      // Build a paged query to retrieve 10 items at a time.

      PagedRdbQuery pagedQuery = new PagedRdbQuery(aQuery);

      pagedQuery.PageSize = 10;

 

      // Specify whether the last item of the page will be first item on next page.

      pagedQuery.PagesShouldOverlap = false;

 

      while (true) {

        EntityList<Order> orders = pm.GetEntities<Order>(pagedQuery);

        Console.WriteLine("Current page = " + pagedQuery.CurrentPage.ToString());

        Console.WriteLine("Order count for this page = " + orders.Count.ToString());

        foreach (Order anOrder in orders) {

          Console.WriteLine(" Order id = " + anOrder.Id.ToString() + ", date = " + anOrder.OrderDate);

        }

        if (pagedQuery.IsLastPage) break;

        // Advance the query.

        pagedQuery.NextPage();

      }

    }

The key points are:

  1. Construct a paged query from another ordered query.
  2. Set the PageSize – the number of items to retrieve at a time (default is 25).
  3. Specify page overlapping – whether the last item of the page will be the first item on next page (default is true).
  4. Use NextPage, PrevPage, and CurrentPage to specify the result page to be returned when next query is executed.



Print Page | Close Window