Saltar al contenido principal
Versión: v20 R4 BETA

Tipos de datos

En 4D, los datos se manejan según su tipo en dos lugares: los campos de la base y el lenguaje 4D.

Aunque suelen ser equivalentes, algunos tipos de datos disponibles en la base no están disponibles directamente en el lenguaje y se convierten automáticamente. Por el contrario, algunos tipos de datos sólo pueden manejarse a través del lenguaje. La siguiente tabla lista todos los tipos de datos disponibles y cómo se soportan/declaran:

Tipos de datosSoporte para la base (1)Soporte para el lenguajeDeclaración var`Declaración C_ o ARRAY
AlfanuméricoConvertido en texto-*
TextTextC_TEXT, ARRAY TEXT
FechaDateC_DATE, ARRAY DATE
HoraTimeC_TIME, ARRAY TIME
BooleanBooleanC_BOOLEAN, ARRAY BOOLEAN
IntegerConvertido en entero largoIntegerARRAY INTEGER
LongintIntegerC_LONGINT, ARRAY LONGINT
Entero largo 64 bitsSí (SQL)Convertido en real-*
RealRealC_REAL, ARRAY REAL
Indefinido-*-
Null*-*
Pointer-PointerC_POINTER, ARRAY POINTER
PicturePictureC_PICTURE, ARRAY PICTURE
BLOBBlob, 4D.BlobC_BLOB, ARRAY BLOB
ObjectObjectC_OBJECT, ARRAY OBJECT
Collection*CollectionC_COLLECTION
Variant(2)-VariantC_VARIANT

(1) Tenga en cuenta que ORDA maneja los campos de la base a través de objetos (entidades) y por lo tanto, sólo soporta los tipos de datos disponibles para estos objetos. Para más información, consulte la descripción del tipo de datos Objeto.

(2) Variant no es en realidad un tipo data sino un tipo variable que puede contener un valor de cualquier otro tipo de datos.

Valores por defecto

Cuando las variables o los parámetros se tipifican mediante una declaración explícita, reciben un valor por defecto, que mantendrán durante la sesión mientras no hayan sido asignados.

El valor por defecto depende del tipo de variable:

TipoValor por defecto
BooleanoFalse
Fecha00-00-00
Longint0
Hora00:00:00
Picturepicture size=0
Real0
PunteroNil=true
Text""
BlobTamaño Blob=0
Objectnull
Collectionnull
Variantindefinido

Null como valor por defecto

Las variables de tipo Object, Collection, Pointer y Picture tienen null como valor por defecto, pero en realidad obtienen un estado intermedio cuando se declaran y no se asignan. Se comportan como los valores null, pero con algunas diferencias, generando menos errores cuando el código intenta acceder a ellos.

Convertir los tipos de datos

El lenguaje 4D contiene operadores y comandos para convertir entre tipos de datos, cuando dichas conversiones tienen sentido. El lenguaje 4D aplica la verificación de tipos de datos. Por ejemplo, no se puede escribir: "abc"+0.5+!12/25/96!-?00:30:45?. Esto generará errores de sintaxis.

La siguiente tabla lista los tipos de datos básicos, los tipos de datos a los que se pueden convertir y los comandos utilizados para hacerlo:

Tipos a convertiren Cadenaen Númeroen Fechaen Horaen Booleano
String (1)NumDateTimeBool
Número (2)StringBool
FechaStringBool
HoraStringBool
BooleanNum

(1) Las cadenas formateadas en JSON pueden convertirse en datos escalares, objetos o colecciones, utilizando el comando JSON Parse.

(2) Los valores de tipo Hora pueden tratarse como números.

Nota: además de las conversiones de datos listadas en esta tabla, se pueden obtener conversiones de datos más sofisticadas combinando operadores y otros comandos.