Try OpenEdge Now
skip to main content
ABL Reference
Class Properties and Methods Reference : SetParameter( ) method (Class)

SetParameter( ) method (Class)

Populates elements in a Progress.Lang.ParameterList object.
Return type: LOGICAL
Access: PUBLIC
Applies to: Progress.Lang.ParameterList class


SetParameter ( INPUT position AS INTEGER ,
               INPUT data-type AS CHARACTER ,
               INPUT iomode AS CHARACTER ,
               INPUT parameter-value )
Identifies the one-based position that the parameter occupies in the routine signature. The AVM returns a run-time error if position is greater than the number of parameters defined for a Progress.Lang.ParameterList object, which was set either during instantiation (passed as input to the constructor) or by setting the NumParameters attribute.
A CHARACTER expression indicating the target parameter type. This is generally the data type that the invoked method expects, but can also be an AS data type to match an extended .NET data type, such as "SHORT", "BYTE", "SINGLE-CHARACTER", and so on.
If the parameter of the method to be called is type DECIMAL, then data-type should evaluate to "DECIMAL", even if parameter-value is an INTEGER or INT64. You can pass a type that matches the target using the same widening and hierarchy rules that are used during compilation. Using the exact target type will generally result in better performance.
Valid data-type strings are: "CHARACTER", "DATASET", "DATASET-HANDLE", "DATE", "DATETIME", "DATETIME-TZ", "DECIMAL", "HANDLE", "INT64", "INTEGER", "LOGICAL", "LONGCHAR", "MEMPTR", "RAW", "ROWID", "TABLE", "TABLE-HANDLE" or "CLASS object-type-name". A TABLE-HANDLE can be a handle to a static or dynamic TEMP-TABLE. A DATASET-HANDLE can be a handle to a static or dynamic ProDataSet object. The BUFFER type is not supported; use a HANDLE parameter instead.
For any parameter array value, the EXTENT keyword is required when specifying data-type. For example, "CHARACTER EXTENT", "INTEGER EXTENT", "LONGCHAR EXTENT", "MEMPTR EXTENT", "CLASS object-type-name EXTENT" and so on.
For each parameter, the data type specified by the caller and the callee must be compatible with the ABL object-oriented parameter rules.
A CHARACTER expression that indicates the parameter mode and evaluates to one of the following: "INPUT", "OUTPUT", "INPUT-OUTPUT", "OUTPUT APPEND", "OUTPUT BIND", "INPUT BY-REFERENCE", "OUTPUT BY-REFERENCE", "INPUT-OUTPUT BY-REFERENCE", and "INPUT BIND". For each parameter, the mode specified by the caller and the callee must match. The AVM generates a run-time error if iomode is invalid.
Unlike the call object's SET-PARAMETER( ) method, with the exception of "INPUT-OUTPUT", all iomode combinations are separated by a blank, for example "INPUT BY-REFERENCE".
A value of any data type, including the special TABLE and DATASET types. This value must be compatible with data-type. If iomode is OUTPUT or INPUT-OUTPUT, you can only specify simple variables or properties, not expressions.

See also

Clear( ) method (Class), Invoke( ) method (Class), New( ) method, NumParameters property (ParameterList)