Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Borra registros duplicados en tabla ACCES (https://www.clubdelphi.com/foros/showthread.php?t=21674)

manu 24-05-2005 20:26:10

Borra registros duplicados en tabla ACCES
 
Hola a todos.
Tengo el siguiente problema:
Estoy intentando borrar de una base de datos todos los registros duplicados con el siguiente codigo:

//borrar duplicados.
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
  begin
     AdoQuery2.Prior;
     AdoQuery2.Edit;
  While not AdoQuery2.Eof DO begin
        P1:= AdoQuery2.FieldByName('Referencia').AsString;
        AdoQuery2.Next;
        while  P1= AdoQuery2.FieldByName('Referencia').AsString do begin
           AdoQuery2.DeleteRecords( arCurrent);
           AdoQuery2.Next;
        end;
  end;
  end;
Pero cuando lo ejecuto me da el siguiente error:
Informacion de la columna clave insuficiente o incorrecta, demasiadas filas para la actualizacion;

¿Alguien me puede hechar una mano?.

¿Se podria hacer de otra forma?

Saludos...

marcoszorrilla 24-05-2005 21:38:57

Tienes que tener una clave única en la tabla, aunque sea un campo autoincremental.

Un Saludo.

vtdeleon 24-05-2005 22:15:39

Saludos
Código SQL [-]
select CAMPO
  FROM tabla WHERE campo In (SELECT campo FROM 
  tabla As Tmp GROUP BY campo HAVING Count(*)>1)

Esta sentencia, te devuelve los registros repetidos. Creo con un arreglito puede puedes hacer lo que pides, sin tener que hacer dos bucles.


La franja horaria es GMT +2. Ahora son las 21:57:02.

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