Saltar para o conteúdo principal
Versão: Próximo

DISTINCT ATTRIBUTE VALUES

DISTINCT ATTRIBUTE VALUES ( campoObjeto ; rota ; arrayValores )

ParâmetroTipoDescrição
campoObjetoFieldCampo Objeto do qual obtém a lista de valores atributo distintos
rotaTextRota do atributo cujos valores distintos deseja obter.
arrayValoresText array, Integer array, Boolean array, Date array, Time arrayValores distintos na rota atributo

Descrição

Tema: Arrays

O comando DISTINCT ATTRIBUTE VALUES cria e preenche o arrayValores com valores náo repetidos (únicos) procedentes do atributo rota no campo campoObjeto para a seleção atual da tabela a que pertence o campo. Se campoObjeto não for um campo de objeto indexado, um erro é devlvido.

Passe em rota uma rota atributo válida. Utilize a notação ponto padrão para definir rotas a atributos aninhados, por exemplo "empresa.endereço.numero". Lembre que os nomes de atributos objeto são sensíveis às maiúsculas e minúsculas.

O array que passou em arrayValores deve ser do mesmo tipo que o atributo rota passado como parâmetro, do contrário o array volta ser digitado. Só se admitem os seguintes tipos de arrays: numérico, texto, data e hora (os valores devem ser escalar: ponteiros, objetos, blobs ou imagens não são suportados).

Depois da chamada, o tamanho do array é igual ao número de valores diferentes que se encontram na seleção. O comando não muda a seleção atual ou o registro atual.

Usar a propriedade virtual comprimento

Pode usar a propriedade virtual "comprimento" com este comando. Está automaticamente disponível para todos os atributos do tipo array e oferece o tamanho do array, ou seja, o número de elementos contidos pelo array. Esta propriedade foi criada para ser usada em pesquisas (ver QUERY BY ATTRIBUTEQUERY BY ATTRIBUTE). Pode também ser usada com o comando DISTINCT ATTRIBUTE VALUES para obter os diversos tamanhos de array para um atributo.

Exemplo

Se seu banco de dados contiver um campo objeto [Customer]full_Data (indexado) com 12 registros:

Se executar este código:

 ARRAY LONGINT(aLAges;0)
 ALL RECORDS([Customer])
  //obtém os valores distintos para o atributo  "age"
 DISTINCT ATTRIBUTE VALUES([Customer]full_Data;"age";aLAges)

O array aLAges obtém os seguintes 9 elementos:

  //aLAges{1}=33
  //aLAges{2}=35
  //aLAges{3}=36
  //aLAges{4}=40
  //aLAges{5}=42
  //aLAges{6}=44
  //aLAges{7}=52
  //aLAges{8}=54
  //aLAges{9}=60

Ver também

DISTINCT ATTRIBUTE PATHS