Em 4D, três números estão associados a um registro:
- Número de registro
- Número na seleção
- Número automático
O número de registro é o número físico/absoluto do registro. Este número se registra automaticamente para cada novo registro e permanece constante até que se apague o registro. Os números de registro começam desde zero (0).
Os números de registro não são únicos porque os números de registros apagados são reutilizados para os novos registros. Igualmente estes números são modificados quando a base se conserta ou é compactada.
O número na seleção é a posição do registro na seleção atual. Este número depende da seleção atual. Se a seleção se modifica ou ordena, este número provavelmente também mudará. A numeração em uma seleção atual começa em um (1).
O número automático é um número único, não repetível, que pode ser atribuído a um campo de um registro (através da propriedade Auto incrementar, o atributo SQL AUTO_INCREMENT ou o comando Sequence number). Este número não se armazena automaticamente com cada registro. Começa por padrão em 1 e se incrementa cada vez que se cria um novo registro. Diferente dos números de registros, um número automático não é reutilizado quando se apaga um registro ou quando o banco é compactado ou reparado.
Os números de seqüência oferecem uma forma de ter um número de identificação único para cada registro. Se um número automático se incrementa durante uma transação, o número não se reduz se a transação é cancelada.
Nota:
- Comando SET DATABASE PARAMETER. Se reduzir este contador, os novos registros criados poderiam ter números que já tenham sido atribuídos.
- Números de sequência não são recomendados para preencher campos de registro de chave primárias únicas, especialmente quando a estrutura for usada com diversos arquivos de dados (ver o parágrafo Incrementação automática). Para criar registros únicos de Identidade, é recomendado usar UUIDs.
As seguintes tabelas ilustram os números que estão associados com registros. Cada linha da tabela representa a informação sobre um registro. A ordem das linhas é a ordem na qual os registros serão mostradas em um formulário de saída.
- Coluna de dados: os valores de um campo em cada registro. Em nosso exemplo, contém um nome de uma pessoa.
- Coluna de número de registro: este é o número absoluto do registro, que é devolvido pela função Record Number.
- Coluna do número na seleção: este é o número de posição na seleção atual, que é devolvido pela função Selected record Number.
- Coluna do número automático: este é o número único do registro, que é devolvido pela função Sequence Number.. Este número se armazena em um campo.
A primeira tabela mostra os registros depois de serem introduzidos.
- A ordem dos registros por padrão é pelo número de registro.
- O número de registro começa por 0.
- O número na seleção e o número automático começam por 1.
Dados | Número registro | Número seleção | Número automático |
Tess | 0 | 1 | 1 |
Terri | 1 | 2 | 2 |
Sabra | 2 | 3 | 3 |
Sam | 3 | 4 | 4 |
Lisa | 4 | 5 | 5 |
Nota: os registros permanecem na ordem por padrão depois de que um comando modifica a seleção atual sem reordená-la, como por exemplo o comando de menu Mostrar todos no ambiente Desenho ou depois da execução do comando
ALL RECORDS.
A seguinte tabela mostra os mesmos registros ordenados por nome.
• O número de registro permanece associado com cada registro.
• O número na seleção reflete a nova posição do registro na seleção ordenada.
• O número automático nunca muda, já que é atribuído quando se cria cada registro e é armazenado com ele.
Dados | Número registro | Número seleção | Número automático |
Lisa | 4 | 1 | 5 |
Sabra | 2 | 2 | 3 |
Sam | 3 | 3 | 4 |
Terri | 1 | 4 | 2 |
Tess | 0 | 5 | 1 |
A seguinte tabela mostra os registros depois de apagar o registro de Sam.
- Só os números na seleção mudaram. Os números na seleção refletem a ordem de visualização dos registros.
Dados | Número registro | Número seleção | Número automático |
Lisa | 4 | 1 | 5 |
Sabra | 2 | 2 | 3 |
Terri | 1 | 3 | 2 |
Tess | 0 | 4 | 1 |
A seguinte tabela mostra os registros depois de adicionar o registro Liz.
• Um novo registro se adiciona ao final da seleção atual.
• O número de registro de Sam é utilizado novamente para o novo registro.
• O número automático é incrementado em 1.
Dados | Número registro | Número seleção | Número automático |
Tess | 0 | 1 | 1 |
Terri | 1 | 2 | 2 |
Sabra | 2 | 3 | 3 |
Lisa | 4 | 4 | 5 |
Liz | 3 | 5 | 6 |
A tabela a seguir mostra os registros depois que a seleção foi reduzida a três registros e depois foi ordenada.
• Só muda o número na seleção.
Dados | Número registro | Número seleção | Número automático |
Sabra | 2 | 1 | 3 |
Liz | 3 | 2 | 6 |
Terri | 1 | 3 | 2 |