INSTITUCIONAL
COMUNIDADE
BLOG
AJUDA
MINHA CONTA
EN PT ES

Imagen6388P

De GeneXus 8.0 RC: Cláusula option distinct

A cláusula Option Distinct dos comandos For Each permite retornar os registros que cumpram unicidade de valores dos atributos referenciados

Alcance
Linguagens: .NET, C/SQL, Visual Basic, Visual FoxPro, Java, PocketPC
DBMSes: DB2 UDB for ISeries, DB2 Universal Database, Informix, Oracle, SQL Server, PostgreSQL

Descrição
En alguns casos é necessário obter valores diferentes de um conjunto de atributos. Isto pode ser resolvido utilizando um corte de controle pelos atributos em questão. Para permitir resolver este caso de uma maneira mais eficiente, se acrescentou a cláusula Option Distinct aos comandos For Each y XFor Each.

Por exemplo, suponhamos que se tem uma tabela de Pessoas:

PerCod* Código
PerNom Nome
PerEmail Endereço de email

A forma de obter todos os diferentes endereços de e-mail, sem duplicações, é:

For Each
Option Distinct
&email = PerEmail
Endfor

Para determinar o conjunto de valores diferentes, são levados em conta aqueles atributos referenciados no For each.

Considerações gerais

- A cláusula Option Distinct dos comandos For Each é suportada para geradores Cliente/Servidor e não se aplica -> tabelas locais.
- Os For Each com Option Distinct não podem atualizar a base de dados. Também não os For Eachs interiores no caso de cortes de controle. Os For Eachs anidados sobre outras tabelas sim podem realizar atualizações.
- Se não for especificada uma ordem assume-se Order None.
- A cláusula Option Distinct é suportada no For Each "exterior" no caso de cortes de controle. Os For Eachs "interiores" herdam el Distinct.
- Os NULLs são considerados como qualquer outro valor. Isto significa que se um atributo referenciado tem valor NULL do DBMS em mais de um registro, o For Each devolverá somente um deles.

Relacionado
De GeneXus 8.0 RC: Tipos de dados estruturados (SDT)
De GeneXus 8.0 RC: Grades colapsáveis
Seleção em grades web
De GeneXus 8.0 RC: Propriedade autonumber
Novos parceiros acadêmicos no Brasil!