Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)FrançaisItaliano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Use ProDataSets

Batch Data with ProDataSets

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Introduction to the OpenEdge DataSet
    • Overview
      • Capabilities
      • ProDataSets and Microsoft ADO.NET DataSets
      • Standard ABL components in a ProDataSet
      • ProDataSet goals
      • Architecture
    • Use ProDataSets
      • ProDataSets and temp-tables
        • Temp-tables compared to database tables
        • Static or dynamic temp-tables
        • Pass temp-tables
        • ProDataSet comparison
      • ProDataSet relations
      • Data sources
      • FILL operations
      • Integrate business logic into ProDataSets using events
      • Update a ProDataSet
      • Typical use cases for ProDataSets
    • Define a static ProDataSet
      • Static ProDataSet and its Data-Relations
      • Use the REPOSITION Data-Relation
        • Example with REPOSITION not set
        • Example with REPOSITION set: loading
        • Example with REPOSITION set: navigation
      • Define an inactive Data-Relation
      • Get the handle to a static ProDataSet
    • Data-Source object
      • Define a static Data-Source
        • Attach Data-Sources
        • Example
        • Data-Source as a separate object
        • Whether or not to define a query for a Data-Source
        • When you would not use a Data-Source at all
      • Attach a Data-Source to a ProDataSet buffer
        • Use BUFFER-COPY and BUFFER-COMPARE with a ProDataSet
    • Populate a ProDataSet
      • Fill the entire ProDataSet
      • Partially fill a ProDataSet
      • Define a query on a child table
      • Recursively fill a ProDataSet
      • Summary of a FILL
      • Control the filling of each table
      • Test the Order ProDataSet
    • Object life cycles with ProDataSets
    • Summary
  • ProDataSet Parameters
    • Pass a ProDataSet as a parameter
    • Pass a ProDataSet by value
      • Passing a ProDataSet parameter BY-VALUE breaks PARENT-ID-RELATION
    • Pass a ProDataSet with BY-REFERENCE or BIND
      • Pass a ProDataSet parameter by reference
        • INPUT BY-REFERENCE can be like INPUT-OUTPUT
        • OUTPUT BY-REFERENCE can be like OUTPUT APPEND
        • ProDataSet instance passed BY-REFERENCE must exist in the caller
        • Main block references ignored in internal procedures
        • Specify BY-VALUE in the called procedure
        • Importance of optimized code with BY-REFERENCE
      • Pass a ProDataSet parameter by binding
    • ProDataSet parameter table
    • Local parameter passing example
    • Delete a dynamic ProDataSet passed as a parameter
    • Reduce the data to be passed in a parameter
      • Specify the session startup parameter for all temp-table parameters
      • Set attributes for individual temp-table parameters
    • Pass a ProDataSet with APPEND
    • Extend the sample procedure to pass a parameter
  • ProDataSets Events
    • Event procedures for ProDataSets
    • Define FILL events
    • Use event procedures in the sample procedure
    • Summary
  • Dynamic ProDataSet Basics
    • Create a dynamic ProDataSet
      • Pass ProDataSets
    • Delete a dynamic ProDataSet
    • Specify member buffers
    • Create Data-Relation objects
    • Create a dynamic Data-Source
    • Duplicate ProDataSets with the CREATE-LIKE method
    • Sample procedure: create a dynamic ProDataSet
    • Summary
  • ProDataSet Attributes and Methods
    • Access the handle of a ProDataSet
    • Access a member buffer of a ProDataSet
    • Sample procedures: use attributes and methods
    • Access Data-Relations
    • Use Data-Source attributes and methods
    • Enhanced query support for ProDataSet buffers
      • QUERY attribute for Data-Sources, Data-Relations, and buffers
      • KEYS attribute for buffers
      • TOP-NAV-QUERY attribute
    • Session attributes for ProDataSets, Data-Sources, and queries
    • Other ProDataSet methods
    • Build a dynamic user interface from a ProDataSet
    • Use the SYNCHRONIZE method
    • Sample procedure: add REPOSITION and SYNCHRONIZE
    • Summary
  • Update Data with ProDataSets
    • Track changes in the temp-tables of a ProDataSet
      • ROW-STATE attribute
        • ROW-STATE function
        • Special restrictions on TRACKING-CHANGES
      • Create or define the before-tables
      • Locate rows in the before- and after-tables
      • Extend the sample procedures to track changes
      • Comparison with change tracking in .NET
    • Process changes
      • GET-CHANGES method
      • MERGE-CHANGES and MERGE-ROW-CHANGES methods
      • ACCEPT-CHANGES and ACCEPT-ROW-CHANGES methods
      • REJECT-CHANGES and REJECT-ROW-CHANGES methods
      • SAVE-ROW-CHANGES method
      • DATA-SOURCE-ROWID attribute
      • MARK-ROW-STATE method
      • MARK-NEW method
      • Special support for change conflicts
      • Use the SAVE-WHERE-STRING attribute
      • Extend the samples to GET, SAVE, MERGE, and ACCEPT changes
      • Use the SAVE-ROW-CHANGES method in the update procedure
      • Use the MERGE-CHANGES method in the window procedure
    • Set and use ERROR, ERROR-STRING, and REJECTED
      • Use the error attributes in the sample procedures
    • ProDataSet change events
      • Apply callback procedures programmatically
  • Advanced Events and Attributes
    • Query OFF-END event
    • Buffer BATCH-SIZE and LAST-BATCH attributes
      • NEXT-ROWID attribute
      • RESTART-ROWID attribute
      • RESTART-ROW attribute
    • ProDataSet buffer FIND-FAILED event
    • SYNCHRONIZE event for a ProDataSet buffer
    • Successive loading of ProDataSet data
      • Do a partial ProDataSet FILL to return Order headers
      • Force the ProDataSet to be passed BY-VALUE
      • Filter the top-level query based on the user selection
      • Return the partial ProDataSet to the client
      • Retrieve detail for the ProDataSet
      • COPY-DATASET and COPY-TEMP-TABLE methods
        • Replace-mode argument
        • Loose-copy-mode argument
        • Pairs-list argument
        • Current-only argument
        • Name-prefix argument
      • Use COPY-DATASET with a dynamic target ProDataSet
      • Use the COPY-DATASET method for successive FILLs
    • Summary
  • Batch Data with ProDataSets
    • Overview
    • Use the include-field list to limit the fields copied into the table
    • Set up an event handler for the OFF-END query event
    • Set up an event handler for the FIND-FAILED buffer event
    • Summary
  • Advanced Read Operations
    • ProDataSets as a data access layer
      • Define the right internal representation
      • Define the right granularity for your ProDataSets
      • Define the right top-level table for a ProDataSet
      • ProDataSets with more than one top-level table
      • Dynamic versus static ProDataSets
      • Share ProDataSet and temp-table definitions between procedures
      • Build a data access support procedure
      • Data access procedure example
      • Cache complex derived data in a ProDataSet
      • Summary of the data access procedure
    • Cache data using a ProDataSet
      • Use a subset of the tables in a ProDataSet
        • Write the server procedure
        • Build the user interface for the new ProDataSet
      • Summary of caching data using a ProDataSet
    • Create views with ProDataSets as Data-Sources
      • Sample procedure: create a view
    • Summary
  • Advanced Update Operations
    • Create a data access procedure for the Order ProDataSet
    • Build a business entity procedure to support the ProDataSet
    • Build general update procedures for client and server
      • Build the client side change handler
      • Build the server side change handler
      • Change the window procedure to use the new procedures
    • Run standard validation procedures on update
    • Summary
  • Data Access and Business Entity Objects
    • ProDataSets and the OpenEdge reference architecture
    • Data Access object
      • Isolate the data source from the internal view of data
      • Elements of a data access object
        • ProDataSet and temp-table definitions
        • Data-Source queries
        • Data-Source definitions
        • FILL event procedures
        • Functions to attach and detach the Data-Sources from a ProDataSet
        • Data retrieval API
        • Specialized update API
      • Data Access object template
    • Business Entity object
      • Elements of a Business Entity
        • ProDataSet and temp-table definitions
        • Relationship to the Data Access object
        • Attach the Data-Sources and callbacks
        • Define a data retrieval API
        • Define a generic update API
        • Validation procedures for the generic update API
        • Define a custom update API
        • Manage Business Entity instances
    • Business logic options
      • Standard validation procedures
      • Access other entities in your business logic
      • Trigger procedure logic
      • Include context information in Business Entities
    • Summary
Table of Contents

Batch Data with ProDataSets

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: February 11, 2026
  • 1 minute read
    • OpenEdge
    • Version 13.0
    • Documentation

This collection of topics describes how to batch with a ProDataSet and includes an example of batching data by retrieving subsets of a large number of rows in successive requests.

Contents
  • Overview
  • Use the include-field list to limit the fields copied into the table
  • Set up an event handler for the OFF-END query event
  • Set up an event handler for the FIND-FAILED buffer event
  • Summary
TitleResults for “How to create a CRG?”Also Available inAlert