FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour CDX TO NTX y duplicaci贸n de registros
Posts: 18
Joined: Mon Oct 24, 2005 04:36 PM
CDX TO NTX y duplicaci贸n de registros
Posted: Sun Mar 26, 2006 08:22 PM

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.-

Posts: 18
Joined: Mon Oct 24, 2005 04:36 PM
CDX TO NTX y duplicaci贸n de registros
Posted: Sun Mar 26, 2006 08:36 PM

Me falt贸 anexar que not茅 que la duplicaci贸n se me hizo luego de hacer un pack, por lo que estoy haciendo una funci贸n propia de pack en donde copio a otra base de datos auxiliar todos los registros que no estan marcados para borra y despu茅s hago un zap a la base, luego le importo los campos de la base de datos auxiliar.

Continue the discussion