4D v16.3

Tipos de dados

Página Inicial

 
4D v16.3
Tipos de dados

Tipos de dados  


 

 

Campos 4D, variáveis e expressões podem ser dos seguintes tipos de dados:

Tipos de dadosCampoVariávelExpressão
String (ver nota 1)SimSimSim
Numérico (ver nota 2)SimSimSim
DataSimSimSim
HoraSimSimSim
BooleanoSimSimSim
ImagemSimSimSim
PonteiroNãoSimSim
BLOB (ver nota 3)SimSimNão
Array (ver nota 4)NãoSimNão
Inteiro 64 bits (ver nota 5)SimNãoNão
Flutuante (ver nota 5)SimNãoNão
Indefinido NãoSimSim

Notas

1. A String inclui campo alfanumérico, variável de comprimento fixo, e um campo de texto ou variável.
2. Número inclui campo e variável tipo Real, Inteiro, Inteiro longo.
3. BLOB é a abreviação para binary large object. Para mais informações sobre BLOBs, consulte a seção Comandos BLOB.
4. Array inclui todos os tipos de arrays. Para obter mais informações, consulte a seção Arrays.
5. O inteiro de 64 bits e os tipos float só podem ser controlados através de SQL. Não é recomendável trabalhar com eles através da linguagem 4D porque, neste caso, eles são convertidos para o tipo Real que poderia levar a alguma perda de precisão.
6. Os objetos permitem manipular os dados estruturados utilizando a linguagem. Se administram utilizando os comandos do tema "[#title id="3334"/]".

String  

Cadeia é um termo genérico que representa:

  • As variáveis ou campos de tipo alfanumérico: Um campo alfanumérico pode conter de 0 a 255 caracteres (o limite se fixa durante a definição do campo).
  • As variáveis ou campos tipo Texto: um campo, uma variável ou uma expressão de tipo texto pode conter de 0 a 2 GB de texto.
  • Toda expressão de tipo Alfa ou Texto

Não há diferença entre uma variável alfanumérica e uma variável texto.
Pode atribuir uma variável alfa a um texto e vice-versa; 4D realiza a conversão, truncando os valores se é necessário. Pode misturar cadeia e texto nas expressões.

Nota: No manual Referência da Linguagem 4D, ambos parâmetros string e texto em descrições de comando são indicados como String, exceto quando indicado contrário.

Número é um termo genérico que representa:

  • Campo Real, variável ou expressão
  • Campo Inteiro, variável ou expressão
  • Campo Inteiro longo, variável ou expressão

O intervalo indicado para o tipo de dados Real é ±1.7e±308 (13 cifras significativas)
O intervalo para o tipo de dados número Inteiro (Inteiro de 2 bytes) é -32,768..32,767 (2^15..(2^15)-1)
O intervalo para o tipo de dados Inteiro longo (Inteiro de 4 bytes) é de -2^31..(2^31)-1

Você pode atribuir qualquer tipo de dados Número para o outro; 4D faz a conversão, truncamento ou o arredondamento, se for necessário. No entanto, quando os valores estão fora do intervalo, a conversão não irá retornar um valor válido. Você pode misturar tipos de dados Número em expressões.

Nota: No manual da Linguagem 4D, não importa o tipo de dados, os parâmetros de tipo Real, Inteiro e Inteiro Longo nas descrições de comando são chamados numéricos, exceto quando indicado contrário.

Data  

  • Um campo de data, variável ou expressão pode ser estar no intervalo de 1/1/100 a 12/31/32,767.
  • Usando os a versão em Português de 4D, a data é ordenada no formato dia/mês/ano.
  • Se um ano é dado como dois dígitos, presume-se estar na década de 1900 se o valor for maior ou igual a 30, e de 2000, se o valor for inferior a 30 (esse padrão pode ser alterado usando o comando SET DEFAULT CENTURY).
  • Apesar do  modo de representação de datas C_DATE permite trabalhar com datas até o ano 32.767, certas operações que passam pelo sistema impõe um limite inferior.

Nota: No manual Referência de Linguagem 4D, os parâmetros de data nas descrições do comando são indicadas como data, salvo quando indicado o contrário.

As datas em JavaScript são objetos, são enviadas a 4D como texto que contém sua forma JSON como qualquer outro objeto. Este princípio se aplica, em particular, quando se utilizam as funcionalidades 4D Mobile ou Área Web.
A forma JSON do objeto Date JavaScript segue a norma ISO 8601, por exemplo, 2013-08-23T00:00:00Z".

É sua responsabilidade converter este texto em uma data 4D (C_DATE ). Estão disponíveis duas soluções:

  • Utilizar o comando JSON Parse:
     C_TEXT($1// Recepção de uma data em formato ISO
     C_DATE($d)
     $d:=JSON Parse("\""+$1+"\"";Is date))
  • Utilizar o comando Date:
     C_TEXT($1// recepção de uma data em formato ISO
     C_DATE($d)
     $d:=Date($1)


Observe a diferença entre estas duas soluções: JSON Parse respeita o modo de conversão definido pelo comando #cmd id="642"/] (se o houver), enquanto Date não está sujeito a este. A conversão com o comando Date sempre tem em conta a zona horária local.

Tempo  

  • Um campo de Tempo, variável ou expressão pode estar no intervalo de 0:00:00 a 596,000:00:00.
  • Na versão em Inglês de 4D, o tempo é ordenado em hora:minuto:segundo.
  • As horas estão no formato de 24 horas.
  • Um valor de tempo pode ser tratado como um número. O número retornado de um tempo é o número de segundos que o tempo representa. Para mais informações, consulte a seção de Operadores de Hora.

Nota: No Manual de Referência 4D da linguagem, parâmetros de tempo em descrições de comando são indicados como Tempo, exceto quando indicado o contrário.

Um campo booleano, variável ou expressão pode ser VERDADEIRO ou FALSO.

Nota: No Manual Referência de Linguagem 4D, os parâmetros booleanos em descrições de comando são indicadas como Booleano, exceto quando indicado o contrário.

Imagem  

Um campo de imagem, variável ou expressão pode ser qualquer imagem do Windows ou Macintosh. Em geral, isso inclui qualquer imagem que possa ser colocada na área de tranferência ou lida do disco usando 4D ou comandos de Plug-In.

Nota: No manual Referência de Linguagem 4D, os parâmetros de imagem nas descrições do comando são indicadas como Imagem, salvo quando indicado o contrário.

Uma variável ponteiro ou expressão é uma referência a outra variável (incluindo arrays e elementos de array), tabela ou campo. Não há nenhum campo de tipo ponteiro.

Para mais informações sobre ponteiros, consulte a seção Ponteiros.

Nota: No manual Referência de Linguagem 4D, os parâmetros de Ponteiro nas descrições do comando são indicados como Ponteiro, salvo quando indicado o contrário.
BLOB.

BLOB  

Um campo BLOB ou variável é uma série de bytes (0-2 GB de comprimento) que você pode endereçar individualmente ou usando os DISABLE MENU ITEM. Não há nenhum campo de tipo BLOB.

Nota: No manual Referência de Linguagem 4D, os parâmetros de BLOB nas descrições do comando são indicados como BLOB, salvo quando indicado o contrário.

Objeto  

A estrutura dos objetos 4D "nativos" se baseia no princípio clássico de pares "propriedade/valor". A sintaxe destes objetos se baseia na notação JSON, mas não segue completamente.

  • Um nome de propriedade é sempre um texto, por exemplo "Nome".
  • Um valor de propriedade pode ser do seguinte tipo:
    • Número (Real, Inteiro, etc)
    • Texto
    • Array (texto, real, booleano, objeto, ponteiro)
    • Nulo
    • Booleano
    • Ponteiro (armazenado como tal, avaliado utilizando o comando JSON Stringify ou ao copiar),
    • Data (formato "\"AAAA-MM-DDTHH:mm:ssZ\"")
    • Objeto (os objetos podem estar aninhados em vários níveis)

Você gerencia os objetos usando os comandos disponíveis no tema Objetos (Linguagem).

Indefinido não é realmente um tipo de dados. Ela denota uma variável que ainda não foi definida. A função (um método de projeto que retorna um resultado) pode retornar um valor indefinido, se, dentro do método, o resultado da função ($ 0) é atribuído a uma expressão indefinida (uma expressão calculada com pelo menos uma variável indefinida). Um campo não pode ser indefinido (o comando Undefined sempre retorna False para um campo).

Array  

Array não é na verdade um tipo de dados. Os vários tipos de arrays (como Array de Inteiros, Array de texto, e assim por diante) são agrupados sob este título. Arrays são variáveis, não existe um campo de tipo Array, e não existe uma expressão de tipo Array. Para obter mais informações sobre arrays, consulte a seção Arrays.

Nota: No manual Referência de Linguagem 4D, os parâmetros de Array nas descrições do comando são indicadas como Array, salvo quando indicado o contrário. (por exemplo., Array Texto, Array Numèrico, etc.).

A linguagem 4D contém operadores e comandos para converter tipos de dados, onde tais conversões são significativas. A linguagem 4D reforça a verificação de tipo de dados. Por exemplo, você não pode escrever: "abc"+0.5+!12/25/96!-?00:30:45?. Isso irá gerar erros de sintaxe.

A tabela a seguir lista os tipos de dados básicos, os tipos de dados que podem ser convertidos, e os comandos usados para fazer isso:

Tipos a converterConverter em stringConverter em númeroConverter em dataConverter em Hora
String (*)NumDateTime
Numérico (**)String
DataString
HoraString
BooleanoNum
ObjetoJSON Stringify

(*) As strings formatadas em JSON podem ser convertidas em dados escalares ou em objetos utilizando o comando JSON Parse.
(**) Os valores de hora podem ser tratados como números.

Nota: Além das conversões de dados constantes da tabela, conversões de dados mais sofisticadas podem ser obtidas através da combinação de operadores e outros comandos.



Ver também 

Arrays
Constantes
Controle de fluxo
Convenções
Métodos
Operadores
Ponteiros
Símbolos de referência de caracteres
String
Type
Variáveis

 
PROPRIEDADES 

Produto: 4D
Tema: Apresentação da linguagem

 
HISTÓRIA 

 
ARTICLE USAGE

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