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
El metodo Zap() funciona bien?
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
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.
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.
- Patricio Avalos Aguirre
- Posts: 1028
- Joined: Fri Oct 07, 2005 1:56 pm
- Location: La Serena, Chile
- Contact:
-
- Posts: 145
- Joined: Fri Oct 21, 2005 6:35 pm