Pass a DATASET or DATASET-HANDLE as an INPUT-OUTPUT parameter
- Last Updated: December 14, 2022
- 1 minute read
- OpenEdge
- Version 12.2
- Documentation
INPUT-OUTPUT
DATASET and DATASET-HANDLE
parameters are a combination of INPUT and OUTPUT parameters. The client application must pass an object
instance for the parameter as defined for input parameters. For a DATASET parameter, the client must provide an instance of the strongly typed
DataSet class provided by ProxyGen. For a DATASET-HANDLE
parameter, the client must provide a strongly typed DataSet (if applicable) or an instance of
System.Data.DataSet that contains both the schema and data,
as well as any ABL-specific mappings. For more information on the DATASET and
DATASET-HANDLE forms for specifying a dataset parameter, see Pass a ProDataSet as a parameter in the Use ProDataSets
documentation.
DATASET-HANDLE parameters can be returned as Unknown
or undefined. As a result, you must ensure the client code is written to
handle these cases.
On return from the method, the client can access the rows of
the tables contained in the ProDataSet using the Tables and Rows
properties on the strongly typed DataSet or System.Data.DataSet class.
For INPUT-OUTPUT parameters, all the data must
be put into the parameter before the proxy call is made. Any data
in the parameter at the time of the method is replaced on return
from the proxy call. All output data is immediately available to
the client after the proxy call returns.
During this process, the input object is supplied by the client, then cleared, repopulated with output data, and retuned. For this reason, the schema for the object must match on both sides of the call.