Release 10.1A: OpenEdge Development:
Programming Interfaces

> ## RUN statement parameter data types

> Note that while shared library parameter definitions use a special set of data types, the corresponding expressions, fields, and variables passed in the `RUN` statement have standard Progress data types. You must ensure that your `RUN` statement parameters have data types that are compatible with their corresponding shared library parameter definitions. Table 12–3 lists each shared library parameter data type and the Progress data type that is compatible with it in a `RUN` statement.

> Table 12–3: Shared library and RUN statement parameter compatibilities
> Shared library parameter data types | RUN parameter data types
> --- | ---
> `BYTE` | `INTEGER`
> `SHORT` | `INTEGER`
> `UNSIGNED-SHORT` | `INTEGER`
> `LONG` | `INTEGER`
> `FLOAT` | `DECIMAL`
> `DOUBLE` | `DECIMAL`
> `CHARACTER` | `CHARACTER` LONGCHAR
> `MEMPTR` | `MEMPTR`

> Caution: For `CHARACTER` parameters, Progress always passes the routine a pointer to the character or character string value rather than the value itself. If the routine modifies the value, it can also modify Progress memory outside the bounds of the `CHARACTER` value with unpredictable results. For this reason, Progress does not allow you to use `OUTPUT` or `RETURN` for `CHARACTER` or LONGCHAR parameters, as well as `CHARACTER` or LONGCHAR array parameters, and does not recommend you use `INPUT-OUTPUT` for `CHARACTER` or LONGCHAR parameters. Rather, pass the character string as a `MEMPTR` parameter. For more information, see the "Passing CHARACTER values to shared library routines" section. For more information on passing a `MEMPTR` parameter, see the "Using MEMPTR variables as parameters" section. Note: You cannot use any type of array for a `RETURN` parameter.

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