4D v16.3

Armazenado em registro, arquivo de dados ou fora do arquivo de dados

Página Inicial

 
4D v16.3
Armazenado em registro, arquivo de dados ou fora do arquivo de dados

Armazenado em registro, arquivo de dados ou fora do arquivo de dados  


 

 

Além de seu nome e tipo (consulte a seção Tipos de campos 4D), as propriedades de um campo determinam sua aparência, suas condições de entrada, visualização, edição e armazenamento dos dados. As propriedades de cada campo de uma tabela podem ser definidas individualmente.

As propriedades dos campos podem ser especificadas em Inspetor ou em alguns casos, no menu contextual que aparece com o clique direito em um campo.

Nota: Pode modificar as propriedades de um campo no que já foi introduzido dados na base de dados. Certas mudanças levam em conta os dados existentes. Por exemplo, quando se escolhe o atributo único, 4D mostra uma caixa de diálogo de advertência e não permite que este atributo se ative se os dados do campo contém valores duplicados. No entanto, se modificar as propriedades de entrada de dados, isto não afeta aos dados existentes. Por exemplo, quando se escolhe o atributo Obrigatório, apenas as entradas realizadas depois serão revisadas, os valores introduzidos antes da modificação podem conter espaços em branco .

A área "definição" do Inspetor permite configurar as propriedades elementares do campo. Certas propriedades só estão disponíveis em função do tipo de campo selecionado.

Cor  

É possível atribuir uma cor a cada campo. As cores podem ser utilizadas para diferenciar os campos de acordo com sua função ou seus atributos. Por exemplo, é possível utilizar uma cor para os campos únicos e outra cor para os campos obrigatórios.
Também é possível atribuir individualmente uma cor a cada tabela (ver o parágrafo Definir a cor da imagem de uma tabela)) e a cada relação (ver Definição).

Nota: A cor dos campos definido no editor de estrutura não tem incidência na cor dos campos mostrado nos formulários (ver ) Cores de fundo e de traço).

A cor definida para um campo se aplica ao nome do campo.

Para definir a cor de um ou mais campos, efetue sua seleção e escolha uma cor utilizando:

  • o botão Cor da barra de ferramentas do editor,
  • o comando Cor no menu contextual dos campos (botão direito do mouse),
  • a opção Cor de Inspetor


A opção Automática permite aplicar a cor padrão original do campo.

É possível tornar um campo invisível no ambiente Aplicação selecionado a propriedade Invisível para o campo. O atributo invisível oculta o campo do usuário. Um campo com este atributo não aparece em nenhum dos editores e caixas de diálogo padrões de 4D que aparecem no ambiente Aplicação. Além disso, não é possível ser utilizado pelos plug-ins. Os seguintes editores e caixas de diálogo são afetados no modo aplicação:

Nestes editores e caixas de diálogo, o usuário não poderá ver ou selecionar o campo. Por exemplo, o usuário não pode selecionar um campo invisível para um relatório criado com o editor de relatórios rápidos.

Nota:
Ao usar os editores, os usuários têm a opção de salvar em disco as características da pesquisa ou da ordenação criada por eles. Neste caso, qualquer campo declarado invisível posteriormente poderá ser utilizado. Adicionalmente, os usuários podem introduzir manualmente os nomes dos campos invisíveis na caixa de diálogo de aplicação de fórmulas (consultar Editor de fórmulas).

Os campos invisíveis aparecem em itálico na janela do editor de estrutura.
Único  

A propriedade Único se utiliza quando quer que cada registro de uma tabela tenha um valor diferente (único). A propriedade Único é bem útil para validar os campos que contém números de identificação, números de segurança social, números de ordem de compra, etc.

A propriedade Único evita ter duplicados de valores vazios ou de valores introduzidos. Se um campo tem a propriedade Único, só um registro poderá conter um valor vazio para esse campo.

A barra de informação do editor indica se a propriedade único está selecionada para um campo (ver a seção Editor de estrutura).

Em 4D, os campos com o atributo Único devem ser indexados:

  • Um sinal visual indica que será criado um índice (se não existe) quando se seleciona o atributo Único para um campo:
  • O editor não lhe permite eliminar o índice de um campo único (a opção Nenhum ou eliminar comandos não estão disponíveis para os índices quando se seleciona um campo deste tipo):

    Se deseja eliminar o índice de um campo único, tem que eliminar o atributo Único de antemão.

Esta opção controla a exposição do campo no contexto de petições 4D Mobile enviadas a base 4D através de REST. Por padrão, todas as tabelas e todos os campos estão expostos em 4D Mobile.
Por razões de segurança, é possível que deseje expor somente certos campos de sua base as chamadas 4D Mobile. Por exemplo, se não deseja expor o campo [Empregados]Salário.

Se não quer expor um campo, não selecione a opção Expor com o serviço 4D Mobile para o campo.

Nota: também pode definir esta opção a nível da tabela, consulte Propriedades de Tabela.

Para que um campo seja acessível por meio de 4D Mobile, sua tabela pai também deve ser acessível. Se a tabela pai não está exposta, nenhum de seus campos são acessíveis, independentemente de sua situação individual. Isto significa que você pode ativar ou desativar a exposição de uma tabela em 4D Mobile temporalmente sem modificar o valor individual da opção de exposição de cada campo.

Esta opção pode ser utilizada no contexto da funcionalidade "4D Mobile" functionality. Para obter mais informação, consulte o manual 4D Mobile.

A propriedade Rejeitar o valor NULL de entrada permite evitar o armazenamento de valores NULOS.

Quando este atributo está selecionado para um campo, não será possível armazenar o valor NULO neste campo. Se um campo que tem esta propriedade recebe um valor NULL, um erro é gerado.

Esta propriedade de baixo nível corresponde precisamente ao atributo NOT NULL de SQL. Em geral, se deseja utilizar valores NULOS em seu banco de dados 4D se recomenda utilizar exclusivamente a linguagem SQL de 4D.

Nota: Em 4D, os campos podem ter a propriedade “Obrigatório”. Os dois conceitos são similares, mas seu alcance é diferente: o atributo “Obrigatório” é um controle de entrada de dados, enquanto que o atributo “Rejeitar valor NULO de entrada” trabalha a um nível do motor do banco de dados.

Esta propriedade permite tornar consistente o processamento de valores “vazios” e de valores NULOS para o campo através da linguagem de 4D. Por razões de compatibilidade, os valores NULOS armazenados nos campos dos bancos de dados 4D se convertem automaticamente em valores de padrões quando são manipulados através da linguagem de 4D. Por exemplo, no caso da seguinte instrução:

 minhaVarAlfa:=[minhaTabela]MeuCampoAlfa


...se o campo MeuCampoAlfa contém um valor NULO, a variável minhaVarAlfa conterá “” (string vazia).

Os valores padrões dependem do tipo de dados:
  • para os tipos Alfa e Texto: “”
  • para os tipos numéricos (Real, Inteiro e etc.): 0
  • para o tipo Data: “00/00/00”
  • para o tipo Hora: “00:00:00”
  • para o tipo Booleano: False
  • para o tipo Imagem: imagem vazia
  • para o tipo Blob: BLOB vazio
Por outra lado, este mecanismo em princípio não se aplica aos processos efetuados em nível do motor do banco de dados 4D, tal como as pesquisas. De fato, a pesquisa de um valor “vazio” (por exemplo, meuvalor=0) não encontrará registros que armazenem o valor NULL e vice-versa. Quando ambos os tipos de valores (valores padrões e NULL) estão presentes nos registros para um mesmo campo, certos processos podem ser alterados ou necessitar código adicional. Para evitar estes inconvenientes, a opção Mapear valores NULOS a valores vazios permite padronizar todos os processos na linguagem de 4D. Esta propriedade permite estender o princípio de uso dos valores padrões a todos os processos. Os campos que contém valores NULOS serão considerados automaticamente como que contém os valores padrões.

Esta propriedade se leva em consideração a um nível muito baixo do motor do banco de dados. Atua particularmente no comando  Is field value Null.

Note:
Os campos Alpha no formato UUID que não são gerados não são considerados como NULL, veja formato UUID ).

A propriedade "Auto incrementar" permite gerar os identificadores únicos para os registros. Pode ser utilizado com os Tipos de campos 4D Inteiro, Inteiro Longo e Inteiro Longo 64 bits (ver a seção REGISTER CLIENT).

Um campo com esta propriedade é incrementado automaticamente a cada novo registro na tabela. O número atribuido ao campo corresponde ao "contador interno" da tabela, mantido por 4D. Esse contador interno também pode ser acessado através dos comandos 4D Sequence number e Get database parameter e utilizando o marcador #N (ver Valores padrão).

Os números atribuídos são permanentes e nunca podem ser reutilizados, mesmo quando são os registros são apagados ou compactados. Os números gerados durante uma transação anulada nunca são "perdidos". Entretanto, é possível reiniciar o contador interno de uma tabela usando o comando SET DATABASE PARAMETER.

A propriedade "Autoincrementar" corresponde ao atributo SQL AUTO_INCREMENT e pode ser especificada usando esta linguagem (ver exemplo). A etiqueta AUTO INCREMENT também aparece na área de informação SQL do Inspetor para os campos que têm essa propriedade.

O  seguinte código permite gerar um campo "id" de tipo inteiro na tabela "animais":

 ARRAY TEXT($nomes;6)
 $nomes{1}:="cachorro"
 $nomes{2}:="gato"
 $nomes{3}:="golfinho"
 $nomes{4}:="cobra"
 $nomes{5}:="borboleta"
 $nomes{6}:="avestruz"
 Begin SQL
    CREATE TABLE animais(
    id INT NOT NULL AUTO_INCREMENT ,
    name VARCHAR(30)NOT NULL,
    PRIMARY KEY(id));
    INSERT INTO animais(nome)VALUES(:$nomes);
 End SQL

O seguinte código:

SELECT * FROM animais;

... devolve estes valores:

id    nome
1    cachorro
2    gato
3    golfinho
4    cobra
5    borboleta
6    avestruz

Este menu de opções está disponível para os campos de tipo Texto, BLOB e Imagem unicamente. Permite definir o lugar de armazenamento dos dados do campo. As seguintes opções estão disponíveis:

  • No registro: os dados são guardados com cada registro. Geralmente, não deve eleger esta opção para campos que contenham dados de grande tamanho. No entanto, está selecionada por padrão para os campos de tipo Texto porque este  tipo de armazenamento é necessário se você quer utilizar os índices "estandarte" de tipo B-Tree. O menu de seleção dos índices está oculto quando os dados texto se guardam fora dos registros. 
  • No arquivo de dados: os dados se armazenam no arquivo de dados, mas fora de cada registro. Esta aplicação está selecionada por padrão para los campos BLOBE imagem O armazenamento de texto, imagens e blobs fora dos registros permite otimizar o funcionamento das bases quando se trabalha com grandes volumes de dados.
  • Fora do arquivo de dados: os dados se armazenam em arquivos separados, fora do arquivo .4D. Esta opção se descreve na seção Armazenamento externo dos dados.
    Nota de compatibilidade: esta opção somente é tida em conta para os novos registros criados posteriormente na tabela. Quando se define esta opção para uma tabela na qual os registros já foram intriduzidos, não se modificam e a tabela funcionará em modo de armazenamento mixto interno/externo. Caso deseje ampliar este modo aos registros existentes, deve compactar os dados utilizando a opção Forçar a atualização dos registros (ver Compactar).

Como se descreveu na seção anterior, por razões de otimização, os dados de los campos de tipo BLOB, Imagem e Texto são armazenados fora dos registros ou fora do arquivo de dados.

Nesta configuração, pode ser interessante, por razões de rendimento, "forçar" o armazenamento dos dados nos registros quando seu tamanho é limitado. Este funcionamento é particularmente otimizado se sua aplicação maneja dados BLOB, Imagem ou Texto de tamanhos não homogêneos. 

Este parâmetro é acessível através da opção Tamanho máximo de armazenamento. O valor introduzido nessa área representa o tamanho máximo em bytes para que os dados do campo sejam armazenados nos registros. Por exemplo, se introduzir 30.000 em um campo imagem, uma imagem de 20 Kb seria armazenada dentro do registro e uma de 40 Kb seria armazenada fora do registro. Como padrão, o valor é 0: todos os dados serão armazenados fora dos registros.

Esta propriedade está disponível para os campos do tipo Alfa. Indica que o campo é utilizado para armazenar os identificadores UUID. Os dados armazenadas devem ser ajustados ao formato UUID (combinação de 32 letras (AF, af) e números (0-9)). Para fazer isto, pode utilizar a propriedade Auto UUID, o comando Generate UUID ou qualquer algoritmo personalizado.

Se tentar armazenar neste campo uma string que não cumpra com o formato de UUID, 4D a converterá automaticamente. A mesma operação também se aplica aos valores dos campos existentes não alfa que sejam transformados em campos UUID: ao carregar os registros, os valores são reformatados e depois são novamente guardados.

Os campos com a propriedade Formato UUID podem ser mostrados nos formulários e continuar sendo editáveis. Seu conteúdo é mostrado em caracteres em maiúsculas. Deve passar seu conteúdo através de uma variável se deseja ver os caracteres em minúsculas.

Notas:

  • Os campos com o formato UUID não podem ser associados aos índices de palavras-chave, nem às listas de opções.
  • É possível criar uma relação entre dois campos com o formato UUID mas não é possível relacionar um campo Alfa padrão a um campo que tenha o formato UUID.

Esta opção somente está ativa quando a propriedade Formato UUID estiver selecionada.

Pode utilizar a propriedade Auto UUID para gerar automaticamente um número UUID no campo cada vez que um registro for criado.

O número é calculado automaticamente nos seguintes contextos:

  • quando um registro for criado,
  • quando um registro for carregado cujo campo UUID contém um valor Null. Isso ocorre  mais particularmente por registros criados e guardados antes do campo UUID é adicionado na tabela, quando a opção Map NULL values to blank values não for marcada.

Naturalmente, em todos os casos, o registro deve ser guardado para que a UUID automaticamente gerada deve ser guardada no campo.

Nota: quando dados são importados, mesmo que essa propriedade esteja selecionada, 4D não gera um número novo, e sim utiliza os valores importados (e os transforma quando seja necessário, caso o formato não seja válido). Entretanto, se o valor do campo importado está vazio, um UUID é automaticamente gerado).

Nota de compatibilidade: esta opção se conserva por razões de compatibilidade e não tem nenhum efeito por padrão. Para poder utilizar esta opção, deve habilitar QuickTime em sua aplicação (ver Introdução a Imagens).

Esta propriedade está disponível para os campos Texto e Alfa. Quando selecionar essa opção, as pesquisas e ordenações realizadas nos dados armazenados no campo não consideram nenhum tipo de etiqueta de estilo (style tag).

Esta opção está relacionada com a possibilidade em 4D de se aplicar diferentes estilos dentro de uma mesma área de texto (texto enriquecido) em um formulário. Para obter mais informação sobre essa função, consulte a seção GET DATA SOURCE LIST.

A definição de estilos é feita inserindo etiquetas HTML no texto. Essas etiquetas são interpretadas no momento da visualização da área de texto.

As etiquetas de estilo são armazenadas com os dados. Por exemplo, se escrever "fim de semana" em um campo de texto, 4D guardará "fim de <SPAN STYLE = "color:
#D81E05">semana</SPAN>". Esta operação é transparente para o usuário a nível de formulário. Entretanto, para as buscas e as ordenações, uma configuração específica é necessária para que 4D ignore as etiquetas de estilo. Para "fim de semana", a busca somente a encontrará se tiver selecionado a opção Ignorar estilo ao buscar e ordenar para o campo no editor de estrutura.

Nota: com esta opção, uma busca de ovalor entre os dados de ocampo é o mesmo que a execução dessa instrução dentro de 4D:

 QUERY BY FORMULA(OBJECT Get plain text(ocampo)="ovalor")

A propriedade Indexação está disponível para todos os tipos de campos exceto para BLOBs e imagens. A propriedade índice de palavras chaves está disponível para campos de tipo Alfa, Texto e imagem.
 
O uso de índices permite acelerar os processos e as pesquisas entre os dados.

A gestão de índices é detalhada no parágrafo Criar e modificar Índices.
.

Pode estabelecer controles de entrada de dados para campos e objetos editáveis ao nível dos formulários. Os controles de entrada restringem o que o usuário pode introduzir no campo ou objeto editável em um formulário em particular.

Quando o atributo Obrigatório é selecionado para um campo, o usuário deve obrigatoriamente introduzir um valor no campo durante a entrada de dados. 4D não aceita um registro com campos obrigatórios vazios. Você deve definir como obrigatórios aqueles campos cuja informação seja essencial para o seu banco. O campo que identifica como único a cada registro em uma tabela é um bom candidato a ser Obrigatório. Campos que devem ser obrigatórios para proteger a integridade dos registros são os que contêm dados como os números de CPF, números de fatura, certas datas ou códigos de empregados.

Também é possível definir o atributo Obrigatório para um campo em um formulário particular. Se você selecionar este atributo no editor de Estrutura, não pode desabilitá-lo em uns formulários particular. Mesmo assim, pode aplicar o atributo Obrigatório em um formulário para um campo que não tenha este atributo no editor de Estrutura. Para maiores informações sobre como definir o atributo Obrigatório para um campo em um formulário, consulte a seção Atributos Editável e Obrigatório e propriedades de campos.

Nota: em 4D, campos também podem ter a propriedade "Rejeitar valor NULO como entrada" (ver acima). Os dois conceitos são similares, mas seu alcance é diferente: o atributo "Obrigatório" é um controle de entrada de dados, onde "Rejeitar valor NULO como entrada" trabalha ao nível da máquina do banco de dados.

Se o atributo Não modificável é selecionado para um campo, 4D valida o valor inicial introduzido no campo, mas não permite que o usuário modifique o valor depois que se guarde o registro. O usuário só pode modificar este valor durante a criação do registro, antes que o registro seja aceito. Uma vez que o usuário salva o registro, o valor deste campo não é modificável. Este valor pode ser modificado por um método ou retornando ao ambiente Desenho e desativando este atributo.

Utilize o atributo Não modificável para campos que devem oferecer informação de rastreamento (auditorias) tais como data de recebimento, data de pagamento, etc. O atributo Não modificável é atribuído freqüentemente ao campo que identifica cada registro como único na tabela.

Nota: Este atributo só funciona com campos mostrados em um formulário de entrada. Em outros casos (entrada em lista, entrada em sub-formulário e em modo de listagem), o valor do campo poderá ainda ser modificado.

O usuário não pode introduzir valores a partir do teclado em um campo que tenha o atributo Não editável. Ele deve utilizar um valor padrão para este campo ou escrever um método que insira um valor no campo. Um campo com atributo não editável é útil para mostrar os valores que você não deseja que os usuários do banco modifiquem, tais como totais ou um número de série atribuído por um método.

Também é possível definir esta propriedade para um campo em um formulário em particular. Para maiores informações, consulte a seção Atributos Editável e Obrigatório e propriedades de campos.

Esta opção só está disponível para os campos de tipo Texto. Quando está selecionada, o campo Texto é configurado automaticamente, nos formulários criados posteriormente, de maneira que possam ter várias linhas de texto. Suas características padrões são as seguintes:

  • altura correspondente a várias linhas,
  • barra de rolagem horizontal,
  • em execução, um retorno de carro provoca uma nova linha.
Quando esta opção não estiver selecionada, a aparência padrão do campo texto nos formulários é idêntica a dos campos de tipo Alfa: somente uma linha de altura sem barra de rolagem; um retorno de carro o passa ao seguinte campo do formulário.

É possível alterar a aparência padrão do campo a qualquer momento através do editor de formulários.

Utilize Permitir lista se deseja mostrar uma lista de seleção para a entrada de informação no campo. Para utilizar este atributo, primeiro você deve criar a lista com ajuda do editor de listas (consultar Listas).

Utilize este atributo quando deseja padronizar as entradas no campo e evitar erros de digitação. Esta propriedade é útil para os campos que tem um número limitado de possíveis valores ou entradas usuais. Utilizar uma lista de valores não necessariamente evita que o usuário escreva valores diferentes aos da lista.

Também é possível atribuir uma lista de seleção em um formulário particular. Mesmo assim, quando atribui uma lista de seleção somente em um formulário, a lista não é exibida nos outros editores ou caixas de diálogo, tal como o editor de pesquisas. Para maiores informações sobre o uso de listas de valores em formulários, consulte a seção Controles de entrada de dados e ajuda de entrada

Nota: Também é possível definir em nível dos formulários as listas de valores obrigatórios e de valores excluídos.

Quando se seleciona a opção Permitir lista, o menu suspenso associado é ativado. É possível então selecionar uma lista existente que deseja atribuir ao campo ou pode clicar em [...] para acessar diretamente ao editor de listas (consultar Listas).

É possível dar aos usuários informação adicional sobre um campo adicionando uma mensagem de ajuda. Se você escrever uma mensagem de ajuda nesta área, será exibida debaixo do campo quando o usuário coloque o cursor no campo. Uma mensagem de ajuda é exibida em todas as plataformas.

Quando o usuário colocar o ponteiro do mouse debaixo de um campo, aparece a mensagem em uma mensagens de ajuda, como se mostra a seguir.



Também é possível utilizar uma mensagem de ajuda para um campo em um formulário particular. Se você atribuir uma mensagem de ajuda somente a alguns formulários, não aparecerá nos demais formulários. Para maiores informações em como usar as mensagens de ajuda com formulários, consulte Mensagens de ajuda.

A área Comentários do Inspector permite armazenar informação adicional sobre o campo. Estes comentários estão disponíveis para todos os desenvolvedores.

Note que cada tabela e cada relação dispõem de sua própria área de comentários.

SQL  

A área SQL do Inspector oferece informação útil sobre o campo a partir da perspectiva de seu uso através da linguagem SQL:

Esta área indica particularmente se o nome do campo não respeita as regras da nomenclatura SQL (por exemplo, diferente de 4D, SQL não permite que um nome de campo contenha espaços).

Nota: SQL também define uma lista de palavras reservadas, incluindo funções SQL e palavras chaves SQL. Pode ver essas palavras reservadas em Área de listas do editor de Métodos.

Para cada campo, a área de informação SQL indica seus atributos SQL (tipo e propriedades).



Ver também 

Propriedades de Tabela

 
PROPRIEDADES 

Produto: 4D
Tema: Criar uma estrutura de banco de dados

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de Desenho 4D ( 4D v16)
Manual de Desenho 4D ( 4D v16.1)
Manual de Desenho 4D ( 4D v16.3)