4D v16.3

Datentypen

Home

 
4D v16.3
Datentypen

Datentypen  


 

 

Übersicht über Datentypen für Datenfelder, Variablen und Ausdrücke von 4D:

DatentypDatenfeldVariableAusdruck
Alphanumerisch (siehe 1.)JaJaJa
Zahl (siehe 2.)JaJaJa
DatumJaJaJa
ZeitJaJaJa
BooleanJaJaJa
BildJaJaJa
ZeigerNeinJaJa
BLOB (siehe 3.)JaJaNein
Array (siehe 4.)NeinJaNein
Ganzzahl 64 bits (siehe 5.)JaNeinNein
Fließkomma (siehe 5.)JaNeinNein
Objekt (siehe 6.)JaJaJa
UndefiniertNeinJaJa

Hinweise

  1. Alphanumerisch beinhaltet Datenfelder vom Typ alphanumerisch, Variablen mit fester Länge und Datenfelder bzw. Variablen vom Typ Text.
  2. Numerisch beinhaltet Datenfelder und Variablen vom Typ Zahl, Ganzzahl und Lange Ganzzahl.
  3. BLOB ist die Abkürzung für Binary Large OBject. Weitere Informationen dazu finden Sie im Kapitel BLOB.
  4. Array beinhaltet alle Arten von Arrays. Weitere Informationen dazu finden Sie im Kapitel Arrays.
  5. Ganzzahl 64 bits und Fließkomma werden nur von SQL verwaltet. Wir empfehlen, diese Datentypen nicht in der 4D Programmiersprache zu verwenden, da sie intern in den Typ Zahl umgewandelt werden und das die Genauigkeit beeinträchtigen kann.
  6. Über Objekt lassen sich strukturierte Daten sichern und verwalten. Dazu verwenden Sie die Befehle im Kapitel Objekte (Sprache).

String  

String ist der Oberbegriff für:
  • Datenfelder oder Variablen vom Typ alphanumerisch: Ein Datenfeld vom Typ alphanumerisch kann 0 bis 255 Zeichen enthalten (Limit wird bei der Felddefinition festgelegt)
  • Felder bzw. Variablen vom Typ Text: Ein Feld, eine Variable oder ein Ausdruck vom Typ Text kann 0 bis 2 GB an Text enthalten
  • Jeder Ausdruck vom Typ alphanumerisch oder Text

Es gibt keinen Unterschied zwischen einer Variablen vom Typ alphanumerisch oder Text.

Sie können einen alphanumerischen Wert einem Textfeld zuordnen und umgekehrt. 4D erledigt die Konvertierung und kürzt bei Bedarf. In Ausdrücken können Sie alphanumerisch und Text gleichzeitig verwenden.

Hinweis: Bei der Beschreibung von Befehlen in diesem Handbuch gilt der Begriff String für beide Arten von Ausdrücken, wenn nichts anderes angegeben ist.

Numerisch ist der Oberbegriff für:

  • Datenfeld, Variable oder Ausdruck vom Typ Zahl
  • Datenfeld, Variable oder Ausdruck vom Typ Ganzzahl
  • Datenfeld, Variable oder Ausdruck vom Typ Lange Ganzzahl

Der Typ Zahl umfasst den Bereich ±1,7e±308 bei 13 Stellen Genauigkeit.
Der Typ Ganzzahl umfasst den Bereich -32 768 bis 32 767 (2 Bytes).
Der Typ Lange Ganzzahl umfasst den Bereich -2 147 483 648 bis 2 147 483 647 (4 Bytes).

Sie können numerische Datentypen untereinander zuweisen. 4D erledigt die Konvertierung und kürzt oder rundet bei Bedarf. Bei Werten außerhalb des entsprechenden Bereichs liefert die Konvertierung keinen gültigen Wert. Sie können numerische Datentypen in Ausdrücken auch miteinander mischen.

Hinweis: Bei der Beschreibung von Befehlen in diesem Handbuch gilt der Begriff numerisch für alle Datentypen der Art Zahl, Ganzzahl und Lange Ganzzahl, wenn nichts anderes angegeben ist.

  • Datenfelder, Variablen oder Ausdrücke vom Typ Datum umfassen den Bereich 1.1.100 bis 31.12.32.767.
  • Das Datum wird in der deutschen Version von 4D im Format Tag/Monat/Jahr dargestellt, in der internationalen Version im Format Monat/Tag/Jahr.
  • Eine Jahreszahl mit zwei Stellen betrifft standardmäßig das Jahr 1900, außer die Einstellung wurde mit dem Befehl SET DEFAULT CENTURY geändert.
  • Auch wenn die Datumsdarstellung über C_DATE bis zum Jahr 32 767 funktioniert, können über das Betriebssystem laufende Operationen ein niedrigeres Jahr vorschreiben.

Da Datum in JavaScript ein Objekt ist, wird es an 4D, wie jedes andere Objekt, als Text mit JSON Formular gesendet. Dieses Prinzip wird insbesondere bei 4D Mobile oder Web Area implementiert.
Das JSON Formular des Objekts JavaScript Datum berücksichtigt den Standard ISO 8601, z.B. "2013-08-23T00:00:00Z"
Sie müssen selbst für die Konvertierung in ein 4D Datum (C_DATE) sorgen. Es gibt zwei Lösungen:

  • Über den Befehl JSON Parse:
     C_TEXT($1// Ein Datum in ISO Format empfangen
     C_DATE($d)
     $d:=JSON Parse("\""+$1+"\"";Is date))
  • Über die Funktion Date:
     C_TEXT($1// Ein Datum in ISO Format empfangen
     C_DATE($d)
     $d:=Date($1)

Es gibt folgende Unterschiede zwischen diesen beiden Lösungen: JSON Parse berücksichtigt den Konvertierungsmodus, der über den Befehl SET DATABASE PARAMETER (sofern vorhanden) gesetzt wurde. Die Funktion Date berücksichtigt dagegen immer die lokale Zeitzone.

  • Datenfelder, Variablen oder Ausdrücke vom Typ Zeit umfassen den Bereich 00:00:00 bis 596.000:00:00.
  • Die Zeit wird in der deutschen und der internationalen Version von 4D im Format Stunde:Minute:Sekunde dargestellt.
  • Zeiten werden im 24 Stundenformat angezeigt.
  • Ein Wert vom Typ Zeit kann wie eine Zahl behandelt werden. Ein Zeitausdruck als Zahl gibt die Zeit in Sekunden an. Weitere Informationen dazu finden Sie im Abschnitt Zeitoperatoren.

Boolean  

Datenfelder, Variablen oder Ausdrücke vom Typ Boolean können WAHR oder FALSCH sein.

Bild  

Datenfelder, Variablen oder Ausdrücke vom Typ Bild können sowohl im Windows- als auch im Macintosh-Format sein. Dazu gehört jedes Bild, das Sie in die Zwischenablage legen oder mit Befehlen von 4D bzw. Plug-Ins von der Festplatte lesen können.

Zeiger  

Variablen oder Ausdrücke vom Typ Zeiger verweisen auf eine andere Variable (inkl. Arrays oder Tabellenelemente), Tabelle bzw. Datenfeld. Ein Datenfeld kann nicht vom Typ Zeiger sein. Weitere Informationen dazu finden Sie im Abschnitt Zeiger.

BLOB  

Datenfelder oder Variablen vom Typ BLOB sind eine Reihe Bytes (von 0 bis 2 GB Länge), die Sie individuell oder über BLOB Befehle (siehe Kapitel BLOB) zuweisen können. Ein Ausdruck kann nicht vom Typ BLOB sein.

Objekt  

Variablen, Felder oder Ausdrücke vom Typ Objekt können verschiedene Datentypen enthalten. Die Struktur von "native" 4D Objekten basiert auf dem klassischen Prinzip von "Eigenschaft/Wert" Paaren. Die Syntax dieser Objekte basiert auf JSON Notation, folgt ihr aber nicht komplett.

  • Ein Eigenschaftenname ist immer ein Text, z.B. "Name".
  • Der Wert einer Eigenschaft kann einer der folgenden Typen sein:
    • Zahl (Zahl, Ganzzahl, etc.)
    • Text
    • Array (Text, Zahl, Boolean, Objekt, Zeiger)
    • Null
    • Boolean
    • Zeiger (als solcher gespeichert, wird beim Verwenden der Funktion JSON Stringify oder beim Kopieren bewertet)
    • Datum (Format "\"YYYY-MM-DDTHH:mm:ssZ\"")
    • Objekt (Objekte können in mehrere Stufen verschachtelt sein)

Objekte vom Typ Variable, Felder oder Ausdruck verwalten Sie über die Befehle im Kapitel Objekte (Sprache). Über spezifische Befehle im Kapitel Suchen wie QUERY BY ATTRIBUTE und QUERY SELECTION BY ATTRIBUTE können Sie nach Attributen in Objektfeldern suchen. 

Undefiniert ist kein Datentyp. Damit wird eine Variable bezeichnet, die noch nicht definiert ist. Eine Funktion (eine Projektmethode, die ein Ergebnis zurückgibt) gibt einen undefinierten Wert zurück, wenn in der Methode dem Ergebnis der Funktion ($0) ein undefinierter Ausdruck zugewiesen wurde (Ausdruck mit mindestens einer undefinierten Variablen). Ein Datenfeld kann nicht undefiniert sein (die Funktion Undefined gibt für ein Datenfeld immer False zurück).

Array  

Ein Array ist kein Datentyp. Unter diesem Oberbegriff werden Arrays der Art Zahl, Text etc. zusammengefasst. Arrays sind Variablen — Datenfelder und Ausdrücke können nicht vom Typ Array sein. Weitere Informationen dazu finden Sie im Kapitel Arrays.

Hinweis: Im Allgemeinen werden Array Parameter in Befehlsbeschreibungen als Arrays bezeichnet, in spezifischen Fällen wird Array Text, Array Zahl, etc. verwendet

Die 4D Programmiersprache enthält Operatoren und Befehle, um bei Bedarf zwischen Datentypen zu konvertieren. Die 4D Programmiersprache unterstützt die Überprüfung von Datentypen. Sie können nicht schreiben: "abc"+0.5+!12/25/96!-?00:30:45?. Das ergibt Syntaxfehler.

Nachfolgende Liste zeigt die wichtigsten Datentypen, in welchen Typ sie konvertiert werden können und die dafür verwendeten Befehle:

Datentypkonvertieren inkonvertieren inkonvertieren inkonvertieren in
AlphanumerischNumerischDatumZeit
Alphanumerisch (*)NumDateTime
Numerisch (**)String
DatumString
ZeitString
BooleanNum
ObjektJSON Stringify

(*) In JSON formatierte Strings lassen sich über die Funktion JSON Parse in skalare Daten oder in Objekte konvertieren.
(**) Werte vom Typ Zeit lassen sich wie Zahlen behandeln.

Hinweis: Durch Kombinieren von Operatoren und anderen Befehlen erreichen Sie auch komplexere Datenkonvertierungen.



Siehe auch 

Ablaufsteuerung
Einführung in Arrays
Konstanten
Methoden
Namenskonventionen
Operatoren
String
Symbole für direkten Zeichenzugriff
Type
Variablen
Zeiger

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Grundbegriffe

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)