Release 10.1A: OpenEdge Development:
ProDataSets

> ## ProDataSet parameter table

> Table 2–1 summarizes the possible combinations of parameter definitions for ProDataSets. Keep in mind that `BY-VALUE` is the default mode for local calls and the only mode for remote calls.

> Table 2–1: ProDataSet parameters
> Caller RUN statement form | Callee parameter form | Parameter mode | Result
> --- | --- | --- | ---
>     DATASET dsXYZ
>     DATASET dsXYZ
>     INPUT
> | Remote or `BY-VALUE`: Static ProDataSet `dsXYZ` in the caller is copied to the static definition of `dsXYZ` in the callee. The ProDataSet definition is passed along with the data for validation only, as it is not actually needed by the client. Local `BY-REFERENCE`: Callee points to the caller’s ProDataSet using the callee’s static definition, which must match the ProDataSet passed by the caller. Local `BIND`: Same as `BY-REFERENCE`, except the binding persists beyond the end of the called procedure.
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     INPUT
> | Remote or `BY-VALUE`: Definition and data of static ProDataSet `dsXYZ` in the caller are copied to the callee, which constructs a dynamic definition using handle `hDS` and loads the dynamic ProDataSet (and dynamic temp-tables) with the data. Local `BY-REFERENCE`: Callee points to the same ProDataSet as the caller using its dynamic handle, which can accept any ProDataSet passed in. Local `BIND`: Same as `BY-REFERENCE`, except the binding persists beyond the end of the called procedure.
>     DATASET-HANDLE hDS
>     DATASET dsXYZ
>     INPUT
> | Remote or `BY-VALUE`: Definition and data of dynamic ProDataSet whose handle is `hDS` in the caller are copied to the callee, which receives the data into its static definition `dsXYZ`. The definition passed in must match the local static definition. Local `BY-REFERENCE`: Callee points to the same ProDataSet as the caller using its static definition, which must match the ProDataSet passed by the caller. Local `BIND`: Same as `BY-REFERENCE`, except the binding persists beyond the end of the called procedure.
>     DATASET-HANDLE hDS
>     DATASET-HANDLE hDS
>     INPUT
> | Remote or `BY-VALUE`: Definition and data of dynamic ProDataSet whose handle is `hDS` in the caller are copied to the callee, which receives the definition and uses it to construct a dynamic temp-table using its own local handle `hDS`, then loads the data into this dynamic table. Local `BY-REFERENCE`: Callee points to the same ProDataSet as the caller using its dynamic handle, which can accept any ProDataSet passed in. Local `BIND`: Same as `BY-REFERENCE`, except the binding persists beyond the end of the called procedure.
>     DATASET dsXYZ
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     DATASET-HANDLE hDS
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     OUTPUT
> | Remote or `BY-VALUE`: All the same combinations are supported. Nothing is passed in to the callee. The definition of the ProDataSet and its data are passed back in the same form from callee to caller when callee returns. For the `OUTPUT DATASET` form, the definition is used to validate compatible ProDataSet definitions; for the `OUTPUT DATASET-HANDLE` form, it is used to construct the ProDataSet in the caller. Local `BY-REFERENCE`: Likewise, all the same combinations are supported. Callee uses the caller’s ProDataSet until the called procedure ends. Local `BIND`: If the caller’s ProDataSet is an unknown `DATASET-HANDLE` parameter, or a `REFERENCE-ONLY` static ProDataSet parameter, the callee’s ProDataSet is used during the called procedure, and the caller binds to the callee’s ProDataSet after the called procedure returns.
>     DATASET dsXYZ
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     DATASET-HANDLE hDS
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     DATASET dsXYZ
>     DATASET-HANDLE hDS
>     INPUT-OUTPUT
> | Remote or `BY-VALUE`: Once again, the same combinations are supported. The table definition and data are passed in from caller to callee. Callee can make changes to the data in the table, which is returned by being copied back to the caller. Local `BY-REFERENCE`: Callee points to the same ProDataSet as the caller using its dynamic handle, which can accept any ProDataSet passed in. Local `BIND`: Same as `BY-REFERENCE`, except the binding persists beyond the end of the called procedure.
>     HANDLE
>     HANDLE
> | Any | Local only. Cannot be used on a remote call. The handle points to the ProDataSet instance in the caller (for `INPUT` or `INPUT-OUTPUT` modes) or the called procedure (for `OUTPUT` mode). Only dynamic references to the ProDataSet are possible.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095