4D v12.4

DISTINCT VALUES

Página Inicial

 
4D v12.4
DISTINCT VALUES

 

DISTINCT VALUES 


 

DISTINCT VALUES ( campo ; array ) 
Parâmetro Tipo   Descrição
campo  Campo in Campo ou subcampo indexável a utilizar para dados
array  Array in Array a receber os dados do campo

O comando DISTINCT VALUES cria e preenche o array array com valores não-repetidos (únicos) do campo campo para a seleção atual da tabela que pertence ao campo ou subcampo.

Você pode passar a DISTINCT VALUES qualquer campo indexável, ou seja, cujo tipo suporte indexável, sem que necessariamente esteja indexado.

Entretanto, executar este comando com campos não indexáveis será um processo mais lento. Também note que neste caso, o comando perde o registro atual.

DISTINCT VALUES analisa e extrai os valores não repetidos no registros selecionados

Nota: quando o comando DISTINCT VALUES é utilizado durante a transação (que não tenha terminado ainda), o comando leva em consideração os registros criados durante a transação.

Se você cria o array antes de aciona-lo, DISTINCT VALUES espera um array de tipo compatível com o campo ou subcampo passado. Do contrário, em modo interpretado, DISTINCT VALUES vai criar um array do tipo apropriado. No entanto, se o campo ou subcampo é do tipo Hora, o comando espera ou cria um array de tipo Inteiro longo.

Depois de acionado, o tamanho do array é igual ao número de valores distintos encontrados na seleção. O comando não muda a seleção atual nem o registro atual. O comando DISTINCT VALUES usa o index do campo, então os elementos no array são devolvidos ordenados em ordem ascendente. Se este é o comando que necessitam não é preciso acionar SORT ARRAY depois de utilizar DISTINCT VALUES.

Nota: quando DISTINCT VALUES é executado com um campo de texto associado com um índice de palavras chave, o comando preenche o array com as palavras chave do índice. Diferente de outros tipos de dados, os valores devolvidos diferem de acordo com a existência do índice. O índice de palavra chave é sempre levado em consideração, mesmo quando o campo é também associado com um índice padrão.

Advertência: DISTINCT VALUES pode criar arrays grandes, dependendo do tamanho da seleção e do numero de valores diferente nos registros. Os arrays residem na memória, portanto é uma boa idéia testar o resultado depois que o comando esteja completo. Para fazer isso, teste o tamanho do array resultante ou cubra o chamado do comando, usando um método de projeto ON ERR CALL.

4D Server: o comando é otimizado para 4D Server. O array é criado e os valores são calculados na maquina do servidor. O array é então enviado, em sua integridade, ao cliente.

Exemplo  

O exemplo a seguir cria uma lista de cidades a partir da seleção atual e indica ao usuário o número de cidades nas quais a empresa tem filiais:

 ALL RECORDS([Filiais]` Criar uma seleção de registros
 DISTINCT VALUES([Filiais]Cidade;asCidades)
 ALERT("A empresa tem filiais em "+String(Size of array(asCidades))+" cidades.")

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays
Número 339

Comportamento diferente em modo remoto

 
HISTÓRIA 

Modificado: 4D v11 SQL

 
VER TAMBÉM 

ON ERR CALL
SELECTION RANGE TO ARRAY
SELECTION TO ARRAY

 
PALAVRAS CHAVES 

index mots-clés, mots-clés***