Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2005
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Borrar datos duplicados

Hola:

Tengo una BD en Access la cual la manipulo en Delphi 6. El problema que me esta ocurriendo es que no se porque se me estan duplicando los valores, quisiera ver como puedo hacer un procedimiento o una consulta o algo parecido para que me elimine los datos duplicados, no obstante se que esta no es la solucion ideal, pero si una herramienta a utilizar a la hora de darle mantenimiento a la BD.

Alguien me podria ayudar en esto ???

Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #2  
Antiguo 12-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Código SQL [-]

SELECT COUNT(CamposClave) GROUP BY CamposClave HAVING COUNT(CamposClave)>1

Si mal no recuerdo. Lo copie al vuelo y no manejo acces asi que la idea es simplemente contar los campo(s) clave(s), agrupando la consulta por esos mismo, y filtrando por aquellos que den mas de 1...

Para evitar que aparezcan duplicados debes ponder un indice unico. En Acces se seleccionan los campos y se pone la llavesita o se define un indice y se dice es unico. Asi si el programa esta con una logica erronea al menos te va a sacar un error. Tambien es probable que te falte usar transacciones y por eso el problema
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 12-04-2005
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Bueno a ver... porque al parecer me faltaron mas dátos por poner, la tabla no puede tener llave ni nada porque puede darse el caso de que cualquier dato se repita en cualquier tipo de campo, lo que no debe pasar es que en TODOS los campos se repita el mismo valor en un registro determinado, no se si me hago entender.

Saludos y Gracias
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #4  
Antiguo 12-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Igual... se debe especificar esa regla. En ese caso se hace una restriccion de dupliacion (lo que en Acces implica hacer un indice unico).

De todas maneras es buena idea SIEMPRE ponder un Indice, asi sea un autonumerico. Te va a ser util en caso de hacer relaciones, de saber que registro EXACTO tiene X dato, etc... De hecho, es MUY mala idea usar como Indices campos con significado (como Cedula, Nombres, Fechas, etc...) porque dificultan las reglas de integridad, los cambios en estructura, etc...
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 20-06-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Esto me funcionó a mi, de esta manera evito registros duplicados:

Código SQL [-]
create clustered index index_name on table_name 
with ignore_dup_row
__________________


Última edición por ContraVeneno fecha: 20-06-2005 a las 19:59:07.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:17:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi