English|Português|Español
UsuárioSenhaLogin

INÍCIO
PALESTRAS
INFO
Imagen6326P

Aprendendo com GeneXus 8.0 RC: Índices Unique

A Release Candidate de GeneXus 8.0 incorpora a possibilidade de definir como "Unique", índices compostos por um ou mais atributos secundários.

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

Descripción

En alguns casos pode haver vários conjuntos de atributos que cumprem as condições de uma chave primária. Neste caso dizemos que cada conjunto é uma chave candidata. Dado que a chave primária é a que representa a tabela em outras tabelas, deve-se escolher qual das chaves candidatas será a chave primária.

O conceito de chave candidata -não primária-se implementa em GeneXus permitindo a definição de índices de usário com a característica ' Unique'. Com esta funcionalidade se incrementa a produtividade ao evitar que o usuário GeneXus tenha que definir e invocar procedimentos de controle de unicidade.

Manipulação de conflitos em tempo de execução

Dada a existência de índices secundários " Unique", pode-se ter um conflito de registro duplicado, não só nas entradas de novos registros, mas também nas atualizações, se é que estas atualizam algum atributo pertencente a uma chave candidata.
Nas transa
ções, tanto em insert como em update, diante de um conflito de chave candidata duplicada, se mostrará a mensagem "Record already exists" ( na linguagem correspondente ->
Knowledge Base).
Nos grupos 'New' / 'For Each', diante de um conflito de chave candidata duplicada ser
á executado o código pertencente ao " When duplicate" se este existe, do contrário diretamente não será executada a entrada/atualizaçã
o.

Note então, a partir desta versão se suporta o comando " when duplicate" dentro de um grupo " For Each".

Manipulação de conflitos em reorganizações

Dada a existência de chaves candidatas, existem novos casos de falha de reorganizações. GeneXus, num IA detecta os possíveis casos de conflito e avisa ao usuário no IAR dos mesmos. Por outro lado, em tempo de execução, o primeiro passo da reorganização realiza os controles necessários de forma a evitar que as reorganizações cancelem em passos intermediários.

No caso de detectar conflitos, dá ao usuário a possibilidade de deter a reorganização.


Considera
ções gerais

As chaves candidatas compostas por vários atributos podem ter alguns dos atributos que a compõe com valor nulo. Desde o ponto de vista da unicidade, o valor nulo é igual a qualquer outro valor.
Quer dizer, s
ó pode existir um registro com valor nulo em um atributo que forma parte de uma chave candidata. O diagrama de navegação de um For Each que tem condiçõ
es por igual ( '=' ) em todos os atributos de uma chave candidata se mostra como For First.

Exemplos:

Alguns exemplos do uso de chaves candidatas são:
1- Das pessoas se tem, entre outros dados, um identificador e a carteira de identidade.

Para modelar esta realidade, pode-se definir uma transação com chave primária Identificador (definido como um autonumerado) e dentro dos atributos secundários um para representar a carteira de identidade. Depois, se define um índice de usuário sobre este último, que tem a característica de ser ?Unique?.
Se num site web n
ão se quer que existam vários usuários (UserId) respondendo ao mesmo endereço de correio eletrônico (UserMail), um dos dois deveria ser a chave primária e o outro uma candidata.

Relacionado
Aprendendo com GeneXus 8.0 RC: Índices Unique
De GeneXus 8.0 RC: Tipos de dados estruturados (SDT)
Novos parceiros acadêmicos no Brasil!