Overview
- Last Updated: February 11, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
If you run PickOrder.w and tab through
all the filter fields without entering a value into one, you will see a small but noticeable
delay before the Order browse displays the Orders. After all, the AVM has to read nearly 4,000 Order records from the database, plus their Customers and SalesReps, create
a temp-table record for each of them, and buffer-copy the database records to the
temp-table. Then it copies the ProDataSet definition and the entire contents of the ttOrder table to the window procedure. Considering the amount of
work it is doing, it is pretty amazing that it does not take a lot longer than it does.
However, if the number of rows were even larger, or if you were running the support
procedure across an application server connection on a different machine, the delay would be
much greater.
Generally, you should try to avoid giving your users the opportunity to browse through very large numbers of rows on the client, instead prompting them to filter the data in advance as the example window does. However, in some cases you need to move a potentially large number of rows from server to client, and it is often better to do it in batches so the user can see some of the rows before every database record has been read and copied into the temp-table and across to the client.
This section extends the example
from Advanced Events and Attributes to show you a way of batching records . At the same time we will
show you how to limit the number of fields copied into the temp-table.
After all, the window is only showing four fields from the ttOrder table,
so there is really no point in copying every field into the temp-table,
and more significantly, passing all those field values across to
the client where they will never be seen or used.
To update the code: