Try OpenEdge Now
skip to main content
.NET Open Clients
Passing Parameters : ABL data type mappings : Arrays as parameters
 

Arrays as parameters

ABL allows arrays (called EXTENTs in ABL) to be passed as run-time parameters, using the same data type mapping shown in the following table:
Table 3. ABL to .NET data-type mapping for array parameters
ABL EXTENT data type
Proxy code (C#) return type for values
Proxy code (C#) return type for unknown values
INTEGER
System.Int32[]
IntHolder[]
INT64
System.Int64[]
LongHolder[]
DECIMAL)
System.Decimal[]
DecimalHolder[]
CHARACTER
System.String[]
LOGICAL
System.Boolean[]
BooleanHolder[]
DATE
DATETIME
DATETIME-TZ
System.DateTime[]
DateHolder[]
RECID
System.Int64[]
RAW
System.Byte[][]
ROWID
Progress.Open4GL.Rowid[]
COM-HANDLE
Progress.Open4GL.COMHandle[]
WIDGET-HANDLE
Progress.Open4GL.Handle[]
The size of an array is not part of its definition in .NET, so the EXTENT value is not reflected in the .NET proxy's parameter definition. If the extent of the data passed by the client does not match the extent of the parameter declaration of the ABL procedure, the proxy returns an error to the client at run time.
Note: Arrays defined with EXTENT 0 are treated as scalars (consistent with ABL). The proxy will contain a scalar for the parameter, and not an array.