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

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
DATASET-HANDLE
System.Data.DataSet
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 Passing TABLE and TABLE-HANDLE parameters.
TABLE-HANDLE
System.Data.DataTable
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.
* Date and time conversions
* Arrays as parameters
* Passing arguments by reference
* Unknown value (?) as a parameter