vBdC vGuru


Registrado: 11 Oct 2005 Mensajes: 2
|
Publicado: Jue, 11-Dic-2003 02:00:00 Asunto: Claves duplicadas |
|
|
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
Ultima edición por vBdC el Jue, 11-Dic-2003 02:00:00, editado 1 vez |
|