4D v16.3

Tipos de datos

Inicio

 
4D v16.3
Tipos de datos

Tipos de datos  


 

 

Los campos, variables, y expresiones de 4D pueden ser de los siguientes tipos de datos:

Tipos de datosCampoVariableExpresión
Cadena (ver nota 1)
Numérico (ver nota 2)
Fecha
Hora
Booleano
Imagen
PunteroNo
BLOB (ver nota 3)No
Array (ver nota 4)NoNo
Entero 64 bits (ver nota 5)NoNo
Flotante (ver nota 5)NoNo
Objeto (ver nota 6)
IndefinidoNo

Notas

  1. Una cadena puede ser un campo alfanumérico, una variable de longitud fija, o un campo o variable tipo Texto.
  2. Un numérico puede ser una variable o campo de tipo Real, Entero, y Entero largo.
  3. BLOB es la abreviación de Binary Large OBject. Para mayor información sobre BLOBs, consulte la sección Comandos BLOB.
  4. Los arrays pueden ser de todo tipo. Para mayor información, consulte la sección Arrays
  5. Los tipos Entero 64 bits y Flotante, sólo son manejados vía SQL. No es recomendable trabajar con ellos vía el lenguaje 4D, porque en este caso ellos se convierten en tipo Real lo cual puede producir pérdida de precisión.
  6. Los objetos permiten almacenar y manipular los datos estructurados. Se administran utilizando los comandos del tema Objetos (Lenguaje).

Cadena  

Cadena es término genérico que se utiliza para:

  • las variables o campos de tipo alfanumérico: un campo alfanumérico puede contener de 0 a 255 caracteres (el límite se fija durante la definición del campo).
  • las variables o campos tipo Texto: un campo, una variable o una expresión de tipo texto puede contener de 0 a 2 GB de texto.
  • toda expresión de tipo Alfa o Texto
No hay diferencia entre una variable alfanumérica y una variable texto.
Puede asignar una variable alfa a un texto y viceversa; 4D efectúa la conversión, truncando los valores si es necesario. Puede mezclar cadena y texto en las expresiones.

Nota: en el manual del Lenguaje 4D, los parámetros de tipo Alfa y Texto en las descripciones de comandos son llamados Cadena, excepto cuando se especifique de otra forma.

Númerico es un término genérico que se utiliza para:

  • campos, variables o expresiones de tipo Real
  • campos, variables o expresiones de tipo Entero
  • campos, variables o expresiones de tipo Entero largo

El rango de números de tipo Real es ±1.7e±308 (13 cifras significativas)
El rango de números de tipo Entero ( 2-bytes) es -32,768..32,767 (2^15..(2^15)-1)
El rango de números de tipo Entero largo (4-bytes) es -2^31..(2^31)-1

Puede asignar todo número de tipo numérico a otro número de otro tipo numérico; 4D hace la conversión, truncando o redondeando si es necesario. Sin embargo, cuando los valores se salen del rango, la conversión no devolverá un valor válido. Puede mezclar tipos de datos numéricos en expresiones.

Nota: en el Manual del lenguaje 4D, sin importar el tipo de dato, los parámetros de tipo Real, Entero, y Entero largo en las descripciones de los comandos son llamados numéricos, excepto cuando se establezca de otra manera.

Fecha  

  • Un campo, variable o expresión tipo Fecha puede estar en el rango de 1/1/100 a 12/31/32,767.
  • Utilizando la versión en español de 4D, una fecha se estructura día/mes/año.
  • Si un año tiene sólo dos dígitos, se asume que el siglo es el 20 si el valor es mayor o igual a 30, y el 21 si el valor es menor de 30 (este comportamiento por defecto se puede cambiar utilizando el comando SET DEFAULT CENTURY).
  • Aunque el modo de representación de fechas por C_DATE permite trabajar con fechas hasta el año 32.767, ciertas operaciones que pasan por el sistema imponen un límite inferior.

Nota: en el Manual del lenguaje de 4D, los parámetros de tipo Fecha en las descripciones de los comandos son llamados Fecha, excepto cuando se establezca de otra forma.

Las fechas en JavaScript son objetos, son enviadas a 4D como texto que contiene su forma JSON como cualquier otro objeto. Este principio se aplica, en particular, cuando se utilizan las funcionalidades 4D Mobile o Área web.
La forma JSON del objeto Date JavaScript sigue la norma ISO 8601, por ejemplo, 2013-08-23T00:00:00Z".

Es su responsabilidad convertir este texto en una fecha 4D (C_DATE ). Están disponibles dos soluciones:

  • Utilizar el comando JSON Parse:
     C_TEXT($1// recepción de una fecha en formato ISO
     C_DATE($d)
     $d:=JSON Parse("\""+$1+"\"";Is date))
  • Utilizar el comando Date:
     C_TEXT($1// recepción de una fecha en formato ISO
     C_DATE($d)
     $d:=Date($1)


Observe la diferencia entre estas dos soluciones: JSON Parse respeta el modo de conversión definido por el comando #cmd id="642"/] (si lo hay), mientras que Date no está sujeta a este. La conversión con el comando Date siempre tiene en cuenta la zona horaria local.

Hora  

  • Un campo, variable, o expresión tipo Hora puede estar en el rango de 00:00:00 a 596 000:00:00.
  • Utilizando la versión en español de 4D, una hora se estructura bajo la forma hora:minutos:segundos.
  • Las horas están en formato de 24 horas.
  • Un valor de tipo Hora puede tratarse como un número. El número que devuelve es el número de segundos que el tiempo representa. Para mayor información, consulte la sección .

Nota: en el Manual del lenguaje de 4D, los parámetros de tipo Hora en las descripciones de los comandos son llamados Hora, excepto cuando se establezca de otra forma.

Un campo, variable o expresión booleano puede ser VERDADERO o FALSO.

Nota: en el Manual de lenguaje, los parámetros de tipo Booleano en las descripciones se llaman Booleanos, a menos de que establezca de otra forma.

Imagen  

Un campo, variable o expresión de tipo Imagen puede contener imágenes Windows o Macintosh. En general, esto incluye cualquier imagen que se pueda colocar en el Portapapeles o leer desde el disco utilizando comandos de 4D o de un plug-in.

Nota: en el Manual del lenguaje 4D, los parámetros de tipo imagen en las descripciones de los comandos son llamados Imagen, a menos de que se establezca de otra forma.

Puntero  

Una variable o expresión de tipo puntero es una referencia a otras variables (incluyendo arrays y elementos de array), tablas o campos. No hay campos de tipo Puntero.

Para mayor información sobre Punteros, consulte la sección Punteros.

Nota: en el Manual de lenguaje, los parámetros de tipo Puntero en las descripciones de comandos son llamados Puntero excepto cuando se establezca de otra forma.

BLOB  

Un campo o variable de tipo BLOB es una serie de bytes (de un lago de 0 a 2 GB) que puede direccionar individualmente o utilizando los . No hay expresiones de tipo BLOB.

Nota: en el Manual de lenguaje de 4D, los parámetros BLOB en las descripciones de los comandos se llaman BLOB.

Objeto  

Las variables, campos o expresiones de tipo Objeto pueden contener varios tipos de datos. La estructura de los objetos "nativos" 4D se basa en el principio clásico de los pares "propiedad/valor". La sintaxis de estos objetos se basa en la notación JSON, pero no la sigue completamente.

  • Un nombre de propiedad es siempre un texto, por ejemplo "Nombre".
  • Un valor de propiedad puede ser del siguiente tipo:
    • número (Real, Entero, etc)
    • texto
    • array (texto, real, booleano, objeto, puntero)
    • nulo
    • Booleano
    • puntero (almacenado como tal, evaluado utilizando el comando JSON Stringify o al copiar),
    • fecha (formato "\"AAAA-MM-DDTHH:mm:sssZ\"")
    • objeto (los objetos pueden estar anidados en varios niveles)

Usted maneja los objetos usando los comandos disponibles en el tema Objetos (Lenguaje).

Indefinido no es realmente un tipo de datos. Denota una variable que no ha sido definida aún. Una función (un método de proyecto que devuelve un resultado) puede devolver un valor indefinido, dentro del método, el resultado de la función ($0) se asigna a una expresión indefinida (una expresión calculada con por lo menos una variable indefinida). Un campo no puede ser indefinido. (El comando Undefined siempre devuelve False a un campo).

Array  

Un array no es realmente un tipo de datos. Los diferentes tipos de arrays (como Array entero, Array texto, etc.) se agrupan bajo este título. Los arrays son variables, no hay campos ni expresiones de tipo Array. Para mayor información sobre arrays, consulte la sección Arrays.

Nota: en el Manual de lenguaje 4D, los parámetros de tipo Array en las descripciones de los comandos son llamados Arrays, excepto cuando se establezca de otra forma (por ejemplo Array Texto, Array numérico, ...).

El lenguaje de 4D contiene operadores y comandos para convertir tipos de datos en otros tipos, en la medida en que las conversiones tengan sentido. El lenguaje 4D se asegura de la verificación de los tipos de datos. Por ejemplo, no 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 en los que se pueden convertir y los comandos a utilizar para hacerlo:

Tipos a convertirConvertir en cadenaConvertir en númeroConvertir en fechaConvertir en Hora
Cadena (*)NumDateTime
Numérico (**)String
FechaString
HoraString
BooleanoNum
ObjetoJSON Stringify

(*) Las cadenas formateadas en JSON pueden convertirse en datos escalares o en objetos utilizando el comando JSON Parse.
(**) 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.



Ver también 

Arrays
Cadenas de caracteres
Condiciones y bucles
Constantes
Convenciones
Métodos
Operadores
Punteros
Símbolos de referencia de caracteres
Type
Variables

 
PROPIEDADES 

Producto: 4D
Tema: Presentación del lenguaje

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)