Release 10.1A: OpenEdge Development:
.NET Open Clients

> ## Passing INTPUT-OUTPUT parameters

> Passing an `INPUT-OUTPUT` parameter requires several steps to provide a value as input to an application service procedure or user-defined function, then to return a value as output using the same parameter.

> | To pass an `INPUT` parameter:

> 1. Create and initialize a variable for the parameter of the correct .NET data type (see the "Creating variables for parameters" section).

> 2. Add the parameter to a `ParamArray` object (see the "Setting up a parameter array" section).

> 3. Run the procedure or user-defined function (see the "Running procedures and user-defined functions" section).

> 4. Get the output value from the `ParamArray` (see the "Getting OUTPUT parameter values" section). You might also want to reset the variable.

> Example 8–5 passes an `INPUT-OUTPUT` integer parameter that does not support the Unknown value (`?`):

> Example 8–5: Passing an INPUT-OUTPUT parameter using the .NET OpenAPI
>     // Define and initialize the variable for the input-output parameter
>     Int32 CustomerNumber = 33;
>     // Create the ParamArray
>     ParamArray parms = new ParamArray(1);
>     // Add the input-output parameter to the ParamArray
>     parms.AddInteger(0, CustomerNumber, ParamArrayMode.INPUT_OUTPUT);
>     // Run the procedure
>     ...
>     // Fill output parameter
>     // The output value is always returned as an Object
>     // You need to cast the Object before assigning it.
>     CustomerNumber = (Int32) parms.GetOutputParameter(0);

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