4D v16.3

Sobre Relações

Página Inicial

 
4D v16.3
Sobre Relações

Sobre Relações  


 

 

Os comandos desse tema, em particular RELATE ONE e RELATE MANY, estabelecem e administram as relações entre as tabelas, tanto as relações automáticas como as relações manuais. Antes de utilizar os comandos deste tema, por favor consulte o Manual de Desenho de 4D para informação sobre a criação de relações entre tabelas.

Duas tabelas podem estar relacionadas por uma relação automática. Em geral, quando é criada uma relação automática, os registros relacionados são carregados e selecionados na tabela relacionada. Muitas operações fazem com que a relação seja estabelecida.

Estas operações incluem:
  • Entrada de dados
  • Lista de registros na tela em um formulário de saída
  • Relatórios
  • Operações em uma seleção de registros como as pesquisas, as ordenações e as fórmulas.
Para melhorar o rendimento, quando 4D ativa as relações automáticas, apenas um registro é convertido no registro atual para a tabela. Para cada uma das operações numeradas anteriormente, o registro relacionado é carregado de acordo com os seguintes princípios:
  • Se uma relação seleciona um só registro da tabela relacionada, o registro se carrega do disco.
  • Se uma relação seleciona más de um registro de uma tabela relacionada, uma nova seleção de registros se cria para essa tabela, e a o primeiro registro em essa seleção se carrega do disco.
Por exemplo, na estrutura que se mostra a continuação, se um registro para a tabela [Empregados] se carrega e mostra para a entrada de dados, o registro relacionado na tabela [Empresas] se seleciona e se carrega. Igualmente, se um registro para a tabela [Empresas] se carrega e mostra para a entrada de dados, os registros relacionados com a tabela [Empregados] são selecionados.



Nessa estrutura, a tabela [Empregados] é a Tabela muitos, e a tabela [Empresas] é a Tabela um. Para relembrar este conceito, pense que “há muitos empregados relacionados com uma empresa” e “cada empresa tem muitos empregados.”

De maneira parecida, o campo Empresa da tabela [Empregados] é o Campo muitos, e o campo Nome na tabela [Empresas] é o Campo um.

Nem sempre é possível que o campo relacionado seja único. Por exemplo, o campo [Empresas]Nome pode ter vários registros de nomes de empresas iguais. Nessa situação a não unicidade pode ser manejada facilmente criando uma relação, a qual sempre será única, ou outro campo na tabela relacionada. Este campo pode ser um número de identificação da empresa.

A tabela a seguir lista os comandos que utilizam as relações automáticas para carregar os registros relacionados durante sua execução. Todos estes comandos utilizam relações automáticas de Muitos a Um. Apenas os comandos marcados com um Sim ativam as relações automáticas de Um a Muitos.


ComandoRelação Um a Muitos

ADD RECORD

Sim
ADD SUBRECORD Não
APPLY TO SELECTION Não
DISPLAY SELECTION Não
EXPORT DIF Não
EXPORT SYLK Não
EXPORT TEXT Não
EXPORT DATA Não
MODIFY RECORD Sim
MODIFY SUBRECORD Não
MODIFY SELECTION Sim (em entrada de dados)
ORDER BY Não
ORDER BY FORMULA Não
QUERY BY FORMULA Sim
QUERY SELECTION Sim
QUERY Sim
PRINT LABEL Não
PRINT SELECTION Sim
QR REPORT Não
SELECTION TO Array Não
SELECTION RANGE TO Array Não

Que as relações sejam automáticas não significa que os registros relacionados ou os registros para uma tabela sejam selecionados simplesmente porque um comando carrega um registro. Em alguns casos, depois de executar um comando que carrega um registro, ás vezes você vai precisar chamar explicitamente aos registros relacionados utilizando RELATE ONE ou RELATE MANY se necessita acessar aos dados relacionados.

Alguns dos comandos listados na tabela anterior (tais como os comandos de pesquisa) carregam o registro atual quando tiver terminada a tarefa. Neste caso, o registro carregado não seleciona automaticamente os registros relacionados a ele. Novamente, se necessita acessar aos dados relacionados, deve selecionar explicitamente os registros selecionados utilizando RELATE ONE ou RELATE MANY.



Ver também 

CREATE RELATED ONE
GET AUTOMATIC RELATIONS
GET FIELD RELATION
OLD RELATED MANY
OLD RELATED ONE
RELATE MANY
RELATE MANY SELECTION
RELATE ONE
RELATE ONE SELECTION
SAVE RELATED ONE
SET AUTOMATIC RELATIONS
SET FIELD RELATION

 
PROPRIEDADES 

Produto: 4D
Tema: Relações

 
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)