4D v17.4Tipos de dados |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v17.4
Tipos de dados
|
Tipos de dados | Campo | Variável | Expressão |
String (ver nota 1) | Sim | Sim | Sim |
Numérico (ver nota 2) | Sim | Sim | Sim |
Data | Sim | Sim | Sim |
Hora | Sim | Sim | Sim |
Booleano | Sim | Sim | Sim |
Imagem | Sim | Sim | Sim |
Ponteiro | Não | Sim | Sim |
BLOB (ver nota 3) | Sim | Sim | Não |
Array (ver nota 4) | Não | Sim | Não |
Inteiro 64 bits (ver nota 5) | Sim | Não | Não |
Flutuante (ver nota 5) | Sim | Não | Não |
Objeto | Sim | Sim | Sim |
Coleção | Não | Sim | Sim |
Undefined | Não | Sim | Sim |
Null | No | No | Sim |
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.
Cadeia é um termo genérico que representa:
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:
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.
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:
C_TEXT($1) // Recepção de uma data em formato ISO
C_DATE($d)
$d:=JSON Parse("\""+$1+"\"";Is 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.
Nota: A partir de 4D v16 R6, se a configuração de armazenamento de data atual for "date type", Strings de data JSON em formato "AAAA-MM-DD" são automaticamente manejados como valores de data pelos comandos JSON Parse e Date . Para saber mais sobre essa configuração veja a opção "Use date type instead of ISO date format in objects" em Página Compatibilidade.
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.
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.
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.
Variáveis, campos ou expressões do tipo Objeto podem conter vários tipos de dados. A estrutura dos objetos 4D "nativo" é baseada no princípio clássico de pares "propriedade/valores". A sintaxe desses objetos é baseada em notação JSON, mas não a segue completamente.
Aviso: Lembre que os nomes de atributo diferenciam entre maiúsculas e minúsculas.
Você pode gerenciar as variáveis, campos ou expressões usando os comandos disponíveis no tema Objetos (Linguagem). Note que comandos específicos do tema Pesquisas tais como QUERY BY ATTRIBUTE, [#cmd id="1407"/] e QUERY SELECTION BY ATTRIBUTE podem ser usados para realizar processamento de campos objetoNota: Para trabalhar com objetos JSON, pode usar os comandos no tema "JSON" .
Uma variável Coleção pode conter uma lista ordenada de valores de vários tipos, por exemplo:
C_COLLECTION($col)
$col:=New collection("Ford";"Renault";"Nissan";500;100;True)
//$col=["Ford","Renault","Nissan",500,100,true]
Os tipos de valores suportados são texto, número, objeto, array, booleano, coleção ou nulo. Não há nenhuma expressão ou campo de tipo Coleção.
Para administrar as variáveis de tipo Coleção, necessita utilizar a notação de objeto (ver Usar notação padrão objeto) e os comandos de tema Coleções.
Exemplo:
C_COLLECTION($col)
$col:=New collection("Ford";"Renault";"Nissan")
$col[1]:="BMW"
//$col=["Ford","BMW","Nissan"]
As variáveis Coleção armazenam arrays JSON. Um array JSON é uma coleção de valores separados por vírgulas de qualquer tipo, por exemplo:
C_COLLECTION($c1;$c2)
C_TEXT($json1;$json2)
$c1:=JSON Parse("[\"Ford\",\"Renault\",\"Nissan\",500,100,true]")
$json1:=JSON Stringify($c1)
//$json1=["Ford","Renault","Nissan",500,100,true]
$c2:=JSON Parse("[1,2,3,\"a\",\"b\",\"c\"]")
$json2:=JSON Stringify($c2)
//$json2=[1,2,3,"a","b","c"]
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).
Null é um tipo especial de dados com um único valor possível: null. Este valor é retornado por uma expressão que não contém nenhum valor.
Do ponto de vista do banco de dados 4D, um valor null expressa o fato que o valor do dado é desconhecido. Isso NAO significa que o valor está em branco ou vazio ("" para uma string, ou 0 para um longint são exemplos de valores em branco). No banco de dados 4D, valores null em campos (exceto para atributos de campo Object) são gerenciados somente pelo motor SQL . Uma opção específica de campo permite que configure como o banco de dados deve manejar este valor (Mapear valores NULOS a valores vazios) e você pode estabelecer ou ler os valores null usando os comandos Is field value Null e SET FIELD VALUE NULL.Na linguagem 4D e para atributos campo objeto, valores null são gerenciados através da função Null. Esta função pode ser u sada com as expressões abaixo para estabelecer ou comparar o valor null:
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 converter | Converter em string | Converter em número | Converter em data | Converter em Hora |
String (*) | Num | Date | Time | |
Numérico (**) | String | |||
Data | String | |||
Hora | String | |||
Booleano | Num | |||
Objeto | JSON Stringify | |||
Collection | JSON 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.
Apresentação de comandos JSON
Arrays
Guia Digitação
Métodos
Ponteiros
Type
Usar Diretivas de Compilador
Variáveis
Produto: 4D
Tema: Apresentação da linguagem
Modificado: 4D v16 R4
Modificado: 4D v16 R6
Manual de linguagem 4D ( 4D v17)
Manual de linguagem 4D ( 4D v17.1)
Manual de linguagem 4D ( 4D v17.2)
Manual de linguagem 4D ( 4D v17.3)
Manual de linguagem 4D ( 4D v17.4)