FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Herramienta para saber registros duplicados en DBF? SOLUCION
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Herramienta para saber registros duplicados en DBF? SOLUCION
Posted: Tue Jul 23, 2013 03:53 PM

Alguien sabe como o si existe alguna herramienta que me diga si una dbf existen registros duplicados. Por fallo en una rutina, se han generado registros duplicados en una dbf durante una serie de meses. Ahora no se me ocurre una manera fácil de saber si una base de datos de aproximadamente 60000 registros tiene registros duplicados. Es una base de datos de unos 5 campos (usuario, tipo, fecha, comentario, administrador). Si los cinco campos coinciden están duplicados, pero creo que tendría que hacer 60000x60000 comparaciones. Alguna forma mas facil?

Saludos



Andrés González desde Mallorca
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Tue Jul 23, 2013 04:09 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Tue Jul 23, 2013 05:08 PM
Hola Andrés.
Se me ocurre esta pequeña función. Pruébala y me dices. (por lo menos no recorrerá 60000x60000

Code (fw): Select all Collapse
Function Duplicados()
local cDupl,aDupl:={}

SET DELETED ON

dbselectarea("clientes")
ordsetfocus("nombclte")    //nombre+ciudad
dbgotop()
While !eof()
   cDupl := Upper(field->nombre) + Upper(field->ciudad)
   dbskip()
   if Upper(field->nombre) + Upper(field->ciudad) == cDupl
      aadd(aDupl,cDupl)
   endif
Enddo
xbrowse(aDupl,"duplicados")
Return nil

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Tue Jul 23, 2013 05:30 PM

Crear una base nueva con la misma estructura indexada por los 5 campos
Grabar los registro cuando no exista, solo pasara por 60000

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Tue Jul 23, 2013 07:06 PM
Hola...
Probá abrir la DBF con alguna herramienta que se banque sentencias SQL o MySql y lo solucionás con un simple query.

Code (fw): Select all Collapse
SELECT *,COUNT(*) FROM TUTABLA GROUP BY  USUARIO, TIPO, FECHA, COMENTARIO , ADMINISTRADOR


En este query aquellos resultados que en la ultima columna muestren un número mayor que 1 serán los suplicados.

Code (fw): Select all Collapse
SELECT *,COUNT(*) FROM TUTABLA GROUP BY  USUARIO, TIPO, FECHA, COMENTARIO , ADMINISTRADOR HAVING COUNT(*) > 1

En este segundo query sólo mostrará los repetidos.

Espero te sirva la idea...
Saludos,
Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Tue Jul 23, 2013 08:58 PM

estimado

use tabla new exclusive
index on usuario + tipo + dtos(fecha) + comentario + administrador to i_01 unique

copy to otratabla
dbcloseall()

use otratabla //aca estaran los que no estan dulicados
browse()

saludos

Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: Herramienta para saber registros duplicados en DBF?
Posted: Sat Jul 27, 2013 01:03 PM

Gracias a TODOS, han sido muy buenas las respuestas y aunque llevo años con las DBF ignoraba el tema de reindexar con UNIQUE, siempre se aprende algo. SOLUCIONADO .

Soluciones previas que hice. Cristal Reports y tabla de referencia cruzada entre usuario y fecha mas tipo. Pero indudablemente hay que borrar a mano. Finalmente la reindexacion me ha ido bien, gracias.

Saludos



Andrés González desde Mallorca

Continue the discussion