El metodo Zap() funciona bien?

El metodo Zap() funciona bien?

Postby Jorge Jaurena » Sat Mar 24, 2007 11:27 pm

Hace mas de 10 años que esto con Clipper y luego FWH24 funcionaba perfecto, pero ahora a veces anda y a veces no.
Ahora estoy usando el ultimo FWH y el Harbour bajado de Fivetechsoft.com

Hacia lo siguiente:

USE C:\Salon\Cierret INDEX C:\Salon\Cierret1,C:\Salon\Cierret2 NEW EXCLUSIVE
DATABASE oDbf2
oDbf2:bEoF=nil
oDbf2:Zap()
oDbf2:Close()

De esta manera nunca funciona

Asi que probe la siguiente barbaridad:

USE C:\Salon\Cierret INDEX C:\Salon\Cierret1,C:\Salon\Cierret2 NEW EXCLUSIVE
DATABASE oDbf2
oDbf2:bEoF=nil
FOR Q=1 TO 10
oDbf2:Zap()
IF oDbf2:LastRec()=0
EXIT
ENDIF
NEXT
oDbf2:Close()

De esta manera a veces funciona.

Esta dbf debe hacer un zap tres veces al dia, me sucede el mismo problema en distintos clientes, asi que no le puedo hechar la culpa al XP.

Quizas alguien se de cuenta de lo que Yo aun no veo.


Muchas gracias
Jorge Jaurena
Jorge Jaurena
 
Posts: 154
Joined: Fri Oct 21, 2005 6:35 pm

Postby Carlos Mora » Mon Mar 26, 2007 9:24 am

Jorge,

a mi me pasó algo parecido con PACK usando dbfcdx y harbour. A veces el PACK me dejaba más registros de los que debía, replicando un error del Summer'87. Este error tenía que ver con un fallo en el SO con la funcion write del SO. Para 'acortar' un archivo había que escribir 0 bytes en la posición donde se quería que termine el fichero. Luego de eso había que hacer una lectura inmediatamente, que por cierto fallaría. Si no se hacía el archivo no se truncaba y ocacionaba los consabidos fallos en el PACK

La solución? Despues del PACK la cierro y la vuelvo a abrir. Santo remedio.

Select UnaBase
Pack
Use
Use UnaBase ....

Prueba a ver si es eso.

Para tu caso se me ocurre una solución alternativa:

aStru:= dBStruct()
dbCloseArea()
dBCreate( 'tubase', aStru )
Use TuBase

no creo que esto falle.

Un saludo,

Carlos.
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby Patricio Avalos Aguirre » Mon Mar 26, 2007 1:27 pm

Jorge

Prueba con esto

Code: Select all  Expand view
(oDbf2:cAlias)->( __dbZap() )


Saludos
Patricio
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Postby Jorge Jaurena » Tue Mar 27, 2007 11:17 pm

Muchas gracias.

Probe abrir y cerrar el archivo despues del zap y funciona correctamente, increible que a esta altura del partido haya que hacer algo asi para que esto funcione.

Jorge Jaurena
Jorge Jaurena
 
Posts: 154
Joined: Fri Oct 21, 2005 6:35 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 24 guests