ABL data type mappings

.NET data types are defined as part of the common type system within .NET. The common type system supports two general categories of types, value types and reference types. Many ABL data types are mapped to built-in value types provided by .NET. Reference types are classes, either those provided by .NET or user-defined classes. Some ABL data types are mapped to .NET-provided classes, and a few are mapped to ABL-provided classes.

An ABL parameter is mapped directly to its corresponding .NET data type or OpenEdge-provided class, as shown in the following table. These mappings also apply to user-defined function return types, although LONGCHAR and MEMPTR types cannot be returned across the Open Client interface.

Table 1. ABL to .NET data-type mapping for parameters
ABL .NET
CHARACTER
System.String
COM-HANDLE
Progress.Open4GL.COMHandle
DATASET
Strongly typed DataSet

See Pass DATASET and DATASET-HANDLE parameters.

DATASET-HANDLE
System.Data.DataSet
See Pass DATASET and DATASET-HANDLE parameters.
DATE
DATETIME
DATETIME-TZ
System.DateTime
DECIMAL
System.Decimal
HANDLE
Progress.Open4GL.Handle
INT64
System.Int64
INTEGER
System.Int32
LOGICAL
System.Boolean
LONGCHAR
System.String
MEMPTR
Progress.Open4GL.Memptr
RAW
System.Byte[ ]
RECID
System.Int64
ROWID
Progress.Open4GL.Rowid
TABLE
Strongly typed DataTable.See PassTABLE and TABLE-HANDLE parameters.
TABLE-HANDLE
System.Data.DataTable
See PassTABLE and TABLE-HANDLE parameters.
WIDGET-HANDLE
Progress.Open4GL.Handle

The COM-HANDLE, HANDLE, RECID, ROWID, and WIDGET-HANDLE data types are not meaningful outside the ABL environment. Their use is restricted to obtaining the value from an ABL procedure and passing it back to another ABL procedure.

The mapping for the individual fields of a temp-table or temp-tables within a ProDataSet differs from that of other parameters. For information on data type mapping for fields within these parameters, see Data type mapping for temp-table fields.

.NET Open Clients do not support the ABL BUFFER parameter.