Passing a DATASET or DATASET-HANDLE as an INPUT-OUTPUT parameter
INPUT-OUTPUTDATASET 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.
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.