Claves duplicadas

Base de conocimiento de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
vBdC
vGuru
vGuru
Mensajes: 2
Registrado: 11 Oct 2005, 14:22

Claves duplicadas

Mensaje por vBdC » 11 Dic 2003, 01:00

Claves duplicadas

Categorías: Clave duplicada, Índice, Campo

Palabras clave: Importación, Componente de índice, Error, Campos duplicados, Clave única

Enunciado:
¿Por qué aparecen registros y claves duplicadas en campos con índices de clave única?

Desarrollo:
Tanto en arquitectura Cliente Servidor como en vRunner, solamente en altas a través de formularios se realiza una comprobación de todas las claves únicas.

Cuando en arquitectura Cliente Servidor usamos procesos con altas directas, tubos, en los que no intervenga un formulario, únicamente se comprueba la clave primaria (el código) pero no el resto de claves únicas. Sin embargo, en vRrunner no se comprueba ninguna de las claves únicas.

Esto debemos tenerlo muy en cuenta a la hora de realizar importaciones. Hemos de recordar, además, que es más que recomendable dejar siempre que sea Velázquez Visual el que genere el código.

Para evitar su duplicidad debemos usar las funciones de proceso: Ya existe en el índice, Ya existe en alguno de sus índices de clave única.
Para ello, debemos crear un evento anterior a un alta de ficha que contenga uno de los siguientes procesos:

Ejemplo 1:
Ya existe en el índice? -> INDICE, bOK
if -> "bOK"
Set retorno proceso = NO

Ejemplo 2:
Ya existe en alguno de sus índices de clave única? -> bOK, mensaje
if -> "bOK"
Mensaje -> "Clave duplicada: " + "mensaje", 0
Set retorno proceso = No

Estos procesos, lanzados antes de dar de alta una ficha, comprueban si el registro ya existe por un índice en concreto o por alguno de sus índices de clave única, según usemos una función de proceso u otra.
Si usamos la segunda, en la variable local "bOK" nos devolverá si ya existe, y en la variable local "mensaje" nos guardará el índice o índices de clave única duplicados.
Si se cumple la condición, devuelve un mensaje indicando por qué clave única ya existe y cancela el alta (Set retorno proceso = NO).

Por otro lado, cuando queramos cambiar un índice al tipo Clave única debemos realizar antes una búsqueda de todos los elementos de la tabla y ejecutar la opción de listas "Campos duplicados", con el fin de verificar la integridad de los datos. El campo a buscar será el que queramos indexar como clave única. De esta forma podremos corregir las eventuales duplicidades que puedan producirse por la conversión del índice como clave única.
La búsqueda es mejor que la realicemos por un índice que no sea de clave única.

Artículos relacionados
El campo CODIGO y su índice
Error en el ejecutor al dar de alta un registro: Alta no realizada por: no aceptada
Problemas con el contenedor
Los enlaces han de establecerse con índices de clave única
Qué hacer cuando tenemos registros duplicados en nuestra base de datos.
Registros con código 0 en una tabla maestra
Última edición por vBdC el 11 Dic 2003, 01:00, editado 1 vez en total.

Responder