Die folgende Tabelle gibt Aufschluss über die Zuordnung der EGL-Basiselementtypen zu den C-Basiselementtypen, die beim Aufrufen von C-Funktionen mit der Anweisung call (siehe C-Funktionen mit der Anweisung call aufrufen) verwendet werden muss.
| EGL-Basiselement | C-Typ |
|---|---|
| INT | int (4-Byte-Ganzzahl mit Vorzeichen) |
| SMALLINT | short (2-Byte-Ganzzahl mit Vorzeichen) |
| BIGINT | long (8-Byte-Ganzzahl mit Vorzeichen) |
| NUM | Gezontes COBOL-Format. Die Vorzeichenbit bei ASCII sind x30 für eine positive Zahl und x70 für eine negative Zahl. Die Vorzeichenbit bei EBCDIC sind xF0 für eine positive Zahl und xD0 für eine negative Zahl. |
| NUMC | Gezontes COBOL-Format. Die Vorzeichenbit bei ASCII sind x30 für eine positive Zahl und x70 für eine negative Zahl. Die Vorzeichenbit bei EBCDIC sind xC0 für eine positive Zahl und xD0 für eine negative Zahl. |
| DECIMAL, MONEY | Gepacktes COBOL-Format. Die Vorzeichenbit sind xC für eine positive Zahl und xD für eine negative Zahl. |
| PACF | Gepacktes COBOL-Format. Die Vorzeichenbit sind xF für eine positive Zahl und xD für eine negative Zahl. |
| FLOAT | double |
| SMALLFLOAT | float |
| BOOLEAN | char (1 steht für 'true' und 0 steht für 'false') |
| HEX | char ohne Vorzeichen |
| CHAR | char |
| MBCHAR, DBCHAR | char (Konvertierung in 'wchar_t' unter Verwendung von 'mbstowcs' aus 'stdlib.h') |
| UNICODE, STRING | char (Mit Daten in UTF-16-Codierung, zwei Byte pro Zeichen. Konvertierung in 'wchar_t' unter Verwendung von 'mbstowcs' aus 'stdlib.h'. Bei Windows und Linux haben die Daten die Little-Endian-Reihenfolge, bei anderen Systemen die Big-Endian-Reihenfolge.) |
| DATE | char (Format 'jjjMMtt' mit Ziffern, die als '0' bis '9' gespeichert werden) |
| TIME | char (Format 'HHmmss' mit Ziffern, die als '0' bis '9' gespeichert werden) |
| TIMESTAMP | char (mit Ziffern, die als '0' bis '9' gespeichert werden) |
| INTERVAL | char (Beginn mit '+' oder '-', gefolgt von den Ziffern des Wertes als '0' bis '9') |
Die Werte von Datentypen für Text (CHAR, MBCHAR, DBCHAR, UNICODE, STRING), für Datum und Uhrzeit (DATE, TIME, TIMESTAMP, INTERVAL) und Hexadezimalwerte (HEX) enden nicht mit einem Nullbyte. Abschließende Leerzeichen können Sie mit StrLib.setNullTerminator in Nullen konvertieren. Abschließende Nullen können Sie mit StrLib.setBlankTerminator in Leerzeichen konvertieren.
Bei strukturierten Datensätzen übergibt EGL die Daten für die Felder der niedrigsten Ebene. Sie können ein C-Element struct mit derselben Struktur wie der Datensatz erstellen.