Me ocurre algo extra帽o y se lo otorgo al uso de dbfcdx.
Tengo duplicaci贸n de registros id茅nticos y correlativos en una base de datos, la chequeo en forma externa al programa as铆 elimino el problema de los 铆ndices. El c贸digo no tiene forma de duplicar el registro ya que no tengo p茅rdida de datos y si duplicaci贸n. Ahora tambi茅n me ocurre este otro caso, cuando intento abrir una base de datos, ctactev.dbf la cual fue creada con dbfntx tengo este error:
Application
Path and name: C:\DATASOL\Datasol.Exe (32 bits)
Size: 2,131,456 bytes
Time from start: 0 hours 0 mins 6 secs
Error occurred at: 26/03/2006, 17:10:32
Error description: Error DBFNTX/1001 Open error: E:\PROGRAMA\DATASOL\XHARBOUR\ACTDBF\CTACTEV.fpt
Desde xHarbour no he podido hacer la conversi贸n de cdx a ntx, siempre obtengo bases de datos con formato dbfcdx, o sea nunca veo los archivos de memo dbt y si me sigue creando los fpt.
El mismo c贸digo lo hice con clipper y me funcion贸 de maravillas.
Estoy usando esto dentro de la aplicaci贸n de xharbour
***CODIGO***
ANNOUNCE RDDSYS
INIT PROCEDURE INICIO
REQUEST DBFNTX
REQUEST DBFCDX
REQUEST DBFFPT
RDDSETDEFAULT("DBFCDX")
RETURN
**FIN DE CODIGO****
Pero pretendo dejarla a DBFNTX por la duplicaci贸n de registros.
**CODIGO****
Local cPath:="\"+CURDIR()+"\",I
Local aBases:=directory(cPath+"DBF*.dbf"),x,aEst
For x:=1 to len(aBases)
use (cPath+"DBF\"+aBases[x,1]) alias vieja
aEst:=Dbstruct()
//Aqu铆 no me respeta el "DBFNTX" con xharbour y si con clipper
Dbcreate(cPath+"ACTDBF\"+aBases[x,1],aEst,"DBFNTX")
use (cPath+"ACTDBF\"+aBases[x,1]) via "DBFNTX" alias nueva new
DO WHILE VIEJA->( ! EOF () )
NUEVA->( DBAPPEND () )
FOR i := 1 TO VIEJA->( FCOUNT () )
NUEVA->( FIELDPUT ( i, VIEJA->( FIELDGET ( i ) ) ) )
NEXT i
VIEJA->( DBSKIP () )
ENDDO
vieja->(dbclosearea())
nueva->(dbcloseara())
Next
***FIN DE CODIGO*****
Les agradecer铆a su ayuda porque estoy bastante ciego a esta altura y creo que le estoy pasando por arriba al error.
Gracias.
Ricardo.-