Aller au contenu principal
Version: Next

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 langageDéclaration varDéclaration ARRAY
AlphanumériqueOuiConverti en texte--
TextOuiOuiTextARRAY TEXT
DateOuiOuiDateARRAY DATE
TimeOuiOuiTimeARRAY TIME
BooleanOuiOuiBooleanARRAY BOOLEAN
IntegerOuiConverti en entier longIntegerARRAY INTEGER
LongintOuiOuiIntegerARRAY LONGINT
Longint 64 bitsOui (SQL)Converti en réel--
RealOuiOuiRealARRAY REAL
Undefined-Oui--
Null-Oui--
Pointer-OuiPointerARRAY POINTER
PictureOuiOuiPictureARRAY PICTURE
BLOBOuiOuiBlob, 4D.BlobARRAY BLOB
ObjectOuiOuiObjectARRAY OBJECT
Collection-OuiCollection
Variant(2)-OuiVariant

(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. Pour plus d'informations, veuillez vous reporter à la description du type Object.

(2) Variant n'est pas un type de données à proprement parler mais un type de variable qui peut contenir une valeur de n'importe quel autre type de données.

Valeurs par défaut

Lorsque les variables ou les paramètres sont typés au moyen d'une déclaration explicite, ils reçoivent une valeur par défaut, qu'ils conserveront au cours de la session tant qu'ils n'auront pas été assignés.

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

TypeLa valeur par défaut
BooleenFalse
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

Les variables de type Object, Collection, Pointer et Picture ont null comme valeur par défaut, mais ont en fait un statut intermédiaire lorsqu'elles sont déclarées et non assignées. Elles se comportent comme des valeurs null, mais avec quelques différences, générant moins d'erreurs lorsque le code tente d'y accéder.

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)ChaîneBool
DateChaîneBool
TimeChaîneBool
BooleanNum

(1) Les chaînes formatées en JSON peuvent être converties en données scalaires, objets ou collections à l'aide de la commande JSON Parse.

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

Note : Ce tableau ne traite pas les conversions de données plus complexes obtenues à l'aide d'une combinaison d'opérateurs et d'autres commandes.