Aller au contenu principal
Version: v20 R4 BETA

Types de données

Dans 4D, les données sont gérées selon leur type à deux endroits : dans les champs de la base et dans le langage 4D.

Bien qu'ils soient généralement équivalents, certains types de données de la base ne sont pas disponibles dans le langage et sont automatiquement convertis. A l'inverse, certains types de données sont gérés uniquement par le langage. Le tableau suivant liste tous les types de données disponibles, leur prise en charge et leur déclaration :

Types de donnéesPris en charge par la base(1)Pris en charge par le langagevar declarationC_ or ARRAY declaration
AlphanumericOuiConverti en texte-*
TextOuiOuiTextC_TEXT, ARRAY TEXT
DateOuiOuiDateC_DATE, ARRAY DATE
TimeOuiOuiTimeC_TIME, ARRAY TIME
BooleanOuiOuiBooleanC_BOOLEAN, ARRAY BOOLEAN
IntegerOuiConverti en entier longIntegerARRAY INTEGER
LongintOuiOuiIntegerC_LONGINT, ARRAY LONGINT
Longint 64 bitsOui (SQL)Converti en réel-*
RealOuiOuiRealC_REAL, ARRAY REAL
Undefined-Oui*-
Null*Oui-*
Pointer-OuiPointerC_POINTER, ARRAY POINTER
PictureOuiOuiPictureC_PICTURE, ARRAY PICTURE
BLOBOuiOuiBlob, 4D.BlobC_BLOB, ARRAY BLOB
ObjectOuiOuiObjectC_OBJECT, ARRAY OBJECT
Collection*OuiCollectionC_COLLECTION
Variant(2)-OuiVariantC_VARIANT

(1) A noter que ORDA gère les champs de la base via des objets (entités). Par conséquent, seuls les types de données disponibles pour ces objets sont pris en charge. For more information, see the Object data type description.

(2) Variant is actually not a data type but a variable type that can contain a value of any other data type.

Valeurs par défaut

When variables or parameters are typed by means of an explicit declaration, they receive a default value, which they will keep during the session as long as they have not been assigned.

La valeur par défaut dépend du type de variable :

TypeLa valeur par défaut
BooléenFalse
Date00-00-00
Longint0
Time00:00:00
Picturepicture size=0
Real0
PointerNil=true
Text""
BlobBlob size=0
ObjectNull
CollectionNull
Variantundefined

Null comme valeur par défaut

Variables of type Object, Collection, Pointer, and Picture have null as default value, but actually get an intermediary status when declared and not assigned. They behave like null values, but with some differences, generating less errors when the code tries do access them.

Convertir les types de données

Le langage de 4D comporte des fonctions et des opérateurs vous permettant de convertir des types de données en d’autres types, dans la mesure où de telles conversions ont un sens. 4D assure la vérification des types de données. Ainsi, vous ne pouvez pas écrire : "abc"+0.5+!25/12/96!-?00:30:45?, car cette opération génère une erreur de syntaxe.

Le tableau ci-dessous liste les types de données pouvant être convertis, le type dans lequel ils peuvent être convertis, ainsi que les fonctions 4D à utiliser :

Types à convertiren Chaîneen Numériqueen Dateen Heureen Booléen
Chaîne (1)NumDateTimeBool
Numérique (2)StringBool
DateStringBool
TimeStringBool
BooleanNum

(1) Strings formatted in JSON can be converted into scalar data, objects, or collections, using the JSON Parse command.

(2) Les valeurs de type Heure peuvent être utilisées en tant que numériques.

Note: In addition to the data conversions listed in this table, more sophisticated data conversions can be obtained by combining operators and other commands.