4D v16.3Tipos de campos 4D |
||||||||||||||||||||||||
|
4D v16.3
Tipos de campos 4D
Tipos de campos 4D
É necessário especificar um tipo de campo para cada campo. Os tipos de campos afetam a maneira como 4D manipula e armazena os dados nos campos e como os introduz e os exibe nos formulários. Como padrão, 4D atribui um tipo Alfanumérico para cada novo campo. Para modificar o tipo de um campo: Um campo tipo Alfa contém caracteres alfanuméricos (letras e números), sinais de pontuação, e caracteres especiais como o asterisco (*), o sinal de porcentagem (%), o hífen (-) e outros similares. Os campos alfa são utilizados para armazenar informação que deva ser tratada como texto e não ultrapasse 255 caracteres de comprimento. NomeCompleto:=[Empregados]Nome+" "+[Empregados]Sobrenome Um campo Texto é parecido a um campo Alfa, exceto por algumas diferenças. Utilize um campo tipo Data para armazenar valores de datas como datas de início, datas de compra, aniversários, entre outros. Um campo tipo Data pode armazenar qualquer valor de data (dia, mês, ano) respeitando o formato DD/MM/AAAA entre o ano 100 e o ano 32767.
Utilize um campo tipo Hora para armazenar horas com a hora atual, a hora de uma reunião, a hora de faturamento, entre outros). Um campo tipo Hora pode armazenar qualquer hora no formato HH:MM:SS. Os campos Booleanos (algumas vezes chamados campos lógicos) contêm valores TRUE ou FALSE. O tipo de campo Inteiro é utilizado para armazenar números inteiros, ou seja, números sem frações decimais. Os campos de tipo Inteiro podem armazenar números inteiros entre -32.768 e 32.767. Utilize o campo Inteiro Longo para armazenar números inteiros muito grandes, que não podem ser armazenados no campo de tipo Inteiro. Este tipo de campo pode armazenar números inteiros entre ±2.147.483.647. Este tipo de campo pode ser utilizado para armazenar números inteiros de 8 bytes permitindo manipular valores inteiros de tamanho grande, entre +/- 2E64. Nota: Atenção, este tipo de campo é utilizado somente pelo motor SQL de 4D. Se este campo é utilizado é utilizado na linguagem de 4D, seu valor é convertido internamente em um número real. Os campos de tipo Real são utilizados para armazenar números reais, ou seja, números decimais (preço, salários, gastos, etc.). Os campos reais podem armazenar qualquer número na faixa de ±1.7E±308. Nota: no motor da base de dados 4D, as comparações de números reais se realizam sempre com um valor ípsilon de 10^-6 com a finalidade de obter um nível de precisão suficiente. Para garantir a coerência dos dados e dos cálculos, este valor ípsilon não pode mudar. Particularmente, o motor de base de dados não leva em consideração o comando SET REAL COMPARISON LEVEL, que só se aplica aos tratamentos estabelecidos na linguagem de 4D. Devido a imprecisão inerente aos cálculos realizados nos números reais, não recomendamos o uso deste tipo de dados para armazenar valores precisos como identificadores. Este tipo de campo pode ser utilizado para armazenar os números de ponto flutuante. Estes tipos de números permitem armazenar os valores reais sem perder precisão. Nota: Atenção, este tipo de campo é utilizado unicamente pelo motor SQL de 4D. Se este campo é utilizado na linguagem 4D, seu valor se converte internamente em um número real. Os campos de tipo Blob (Binary Large Object) armazenam documentos binários de todo tipo. Por exemplo, pode armazenar documentos criados por outras aplicações, imagens escaneadas ou outras aplicações. Um BLOB pode ser de até 2 Gb. Quando se trabalha com um registro que contém um campo BLOB, todo o BLOB é carregado na memória. É possível utilizar campos tipo BLOB para armazenar arquivos de desktop dentro do seu banco de dados. Também é possível escrever os conteúdos de um campo tipo BLOB em um arquivo de desktop. Por exemplo, é possível utilizar um campo tipo BLOB em um sistema de gestão de documentos que armazena documentos no banco de dados e os entrega aos usuários quando são solicitados.
Os campos tipo Imagem são utilizados para armazenar fotografias digitalizadas, diagramas, mapas, e ilustrações criadas utilizando aplicações gráficas. As imagens são conservadas em seu formato nativo. 4D pode memorizar um nome por padrão para cada imagem armazenada em um campo. Isso significa que você pode definir um nome de arquivo por padrão quando guarda o conteúdo de um campo imagem em um arquivo disco através de uma exportação usuário ou utilizando o comando WRITE PICTURE FILE (quando passa uma cadeia vazia no parâmetro nomArquivo). Se o conteúdo do campo é copiado em uma variável ou em outro campo, seu nome por padrão também é copiado.
Isto se ilustra na seguinte sequencia:
Os campos objetos armazenam pares de atributo/valor dos diferentes tipos, sem esquemas de dados predefinidos. A estrutura de dados armazenada não é necessariamente a mesma entre os diferentes registos. Por exemplo, um objeto de campo [Person]Address pode conter atributos diferentes, dependendo da cidade, do país, e assim por diante: record1= {"street1":"Cotton Treasure Grounds", "street2":"Place Corners", "state":"MD",...} record2= {"street1":"Umber Road", "Number":"28", "state":"MO",...} A estrutura dos objectos 4D baseia-se no princípio padrão de pares de "propriedade/valor". A sintaxe destes objetos baseia-se na notação JSON, mas ainda não a segue completamente:
número (Real, Integer, etc.) Use os comandos 4D Objetos (Linguagem) para gerenciar os campos objeto. Use os comandos OB Get e OB SET para ler e gravar dados de e para campos objeto. Você também pode armazenar e ler arrays como atributos usando os comandos OB SET ARRAY e OB GET ARRAY. Você pode usar comandos dedicados como QUERY BY ATTRIBUTE, [#cmd id="1424"/], DISTINCT ATTRIBUTE VALUES ou DISTINCT ATTRIBUTE PATHS para buscar entre os campos objeto. Como os campos de tipo de objeto são baseados em texto, seu conteúdo é exibido por padrão em um formulário 4D como texto e formato JSON (ver seção abaixo). Nota: Para trabalhar com objetos JSON, você pode usar os comandos encontrados no "JSON". O tipo objeto permite definir campos sem esquema dinâmico. Estes campos objeto podem ser considerados como campos "definidos pelo usuário" ou "personalizados". Em 4D, agora tem que escolher entre os modelos de dados com ou sem esquema. Em ambos os casos, você pode executar pesquisas indexadas rápidas. Observe também que os campos objeto podem simplificar os modelos de dados padrão. Por exemplo, para uma tabela "Contatos" convencional, apenas um campo de tipo objeto permite evitar a criação de dezenas de campos que representam todos os valores possíveis, a maioria dos quais não são usados em 90% dos casos. O modelo de informação em tempo real é criado somente se necessário. Todos os comandos do Objetos (Linguagem) agora aceitam um campo objeto como o primeiro parâmetro (objeto).
// Defina um valor Os arrays também são suportados, por exemplo: ARRAY TEXT($arrGirls;3)</p><p>$arrGirls{1}:="Emma" Para salvar modificações aplicadas aos atributos de um campo Objeto, na maioria dos casos é necessário notificar explicitamente a 4D da mudança antes de salvar o registro. Essa notificação é realizada reatribuindo o campo objeto para si mesmo: [Persons]Identity_OB:=[Persons]Identity_OB //força com que 4D atualize os conteúdos dos campos Esse passo é necessário já que uma referência de objeto pode ser usada em diferentes lugares dentro da aplicação, incluindo outros campos objeto. A linguagem 4D não pode detectar se algum dos atributos de objeto campo foram modificados quando salva o registro. Deve reatribuir explicitamente o campo para salvar seus conteúdos logo que os atributos forem modificados:
Nota: Atribuir o campo não é necessário quando manejar atributos de primeiro nível com o comando OB SET: OB SET([Rect]Desc;"x";"50";"y";"50";"color";"blue") //acesso aos atributos de primeiro nível Os campos de objeto pode ser usado em fórmulas (usando o editor de fórmulas padrão ou o comando EXECUTE FORMULA). No entanto, neste contexto, os campos de objectos podem ser manuseados apenas com os seguintes comandos: Por exemplo, você pode executar a seguinte fórmula de pesquisa: OB Get([Rect]Desc;"color")="blue" Como padrão, os campos objeto são representados como áreas de texto nos formulários 4D. Dentro destas áreas, os dados objeto deve ser undefined, ou devem ser formatados em texto JSON; caso contrário, um erro é retornado. CREATE RECORD([Rect]) Quando o campo [Rect]Desc estiver incluído no seu formulário, os seguintes conteúdos são exibidos: Você pode editar os valores que são exibidos diretamente no campo texto ou digitar dados objeto diretamente com a notação padrão; será formatado em JSON automaticamente quando pulsar a tecla [Tab]: No entanto, a edição direta deve ser feita com cautela, já que os espaços fora de lugar, ou símbolos, irá resultar em um erro de análise JSON e não se salvam os dados editados: Normalmente, ele é mais preciso para lidar com o conteúdo dos campos objeto através de comandosObjetos (Linguagem) e JSON. A maioria das características padrão de 4D suportam campos de tipo objeto. Mas algumas partes avançadas do aplicativo não está prontas para usar diretamente os campos objeto na versão atual. Estas peças são progressivamente atualizadas e estarão disponíveis em versões futuras. As seguintes funções ou comandos suportam parcialmente campos objeto através de fórmulas 4D:
As seguintes funções e comandos 4D não admitem campos objeto:
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
Modificado: 4D v15 ARTICLE USAGE
Manual de Desenho 4D ( 4D v16) |
||||||||||||||||||||||