Rolando:
Comentas que sigues con el problema de la duplicación de registros aleatoriamente, te voy a comentar mi experiencia a ver si es eso lo que te sucede.
Las DBFs cuando estan en RED y por algún motivo se apaga alguna PC o se cierra mal el programa sufren aleatoriamente el daño de registros fisicos en las DBf produciendo el duplicado de registro.
Te preguntaras ¿como se detecta? Y aqui viene mi solución que puede sonar arcaica pero me ha servido para mantener y descubir errores de las DBF en RED. Utilizo el DBASE III Plus en 16 bits para revisar las DBF. ¿Como lo hago ? la explicación:
Yo trabajo con FWH + xHabour, las bases de datos abiertas con xHarbour no se pueden abrir directamente con DBASE ya que la cabezera de la DBF es diferente, entonces previamente las abro con el DBU de Clipper para que cambie la cabezera de la DBF y se pueda abrir con DBASE. Abro e DBASE y hago lo siguiente:
Como ejemplo supungamos que DBF se llama PRUEBA con 50.000 registros
- Abrimos la base datos
- Hacemos una copia de la base, en este proceso es cuando se detecta si la DBF esta dañada o no. Si se copia todos los 50000 regsitros la DBF esta correcta.
Correcto tu base*
.USE PRUEBA
.COPY TO DBFCOPIA
.50000 records copied
Si presenta alguna falla en algún registro no se copia todo los 50.000 registros sino hasta el registro que esta dañado.
***DBf Dañada
.USE PRUEBA
.COPY TO DBFCOPIA
.35153 record copied
En este caso quiere decir que el registro 35153 esta duplicado con el registro 35154. El registro 35154 esta dañado.
Para arreglar la DBF y borrar el registro se tiene que hacer los siguiente:
.USE PRUEBA
.COPY TO DBFCOPIA
.35153 record copied
.GO 35155
.COPY NEXT 14845 TO DBFOTRA
.USE DBFCOPIA
.APPE FROM DBFOTRA
.COPY TO PRUEBA
Y listo tu DBF quedo corregida sin el registro duplicado..
Espero que me haya explicado bien y si no escribeme a mi correo y con mucho gusto en lo que te pueda ayudar.
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH FTDN, xHarbour 1.2.1, Pelles C, Fivedit, Visual Studio Code, Borland 7.30, Mysql, Dbfs
http://www.hymplus.com http://www.hymlyma.com
Tratando de retomar la programación....