Page 2 of 2
Posted: Wed Jan 16, 2008 9:02 am
by pymsoft
Toni,
El ejecutable tambien lo guardo en memoria, pero los datos los guardo en la SD, para que en el caso que la PDA se quede sin baterias no tener perdida de datos.
El tema es que si estoy haciendo un browse de una base de datos que está en la SD, cuando va en stand-by me da error. (Hago el doble trabajo de cargar todo en un array y muestro el array, pero trabajo el doble para no tener ese tipo de errores)
Saludos
Posted: Wed Jan 16, 2008 9:18 am
by Antonio Linares
Toni,
> si realizo un FOPEN funciona no produce error
Has comprobado que valores devuelve FOpen() ?
( Que ninguno sea -1 )
Posted: Wed Jan 16, 2008 3:01 pm
by tsales
Antonio
Comprobado.
Todos los valores devueltos diferentes de -1
Saludos
Posted: Wed Jan 16, 2008 6:02 pm
by Antonio Linares
Toni,
He modificado tu ejemplo quitándole los TRY...CATCH y el bucle FOR Y, y aquí da el error en DbCreate(). No es capaz de crear los ficheros.
Posted: Wed Jan 16, 2008 6:07 pm
by Antonio Linares
A veces los crea y a veces no.
No parece nada fiable la emulación de la "memory card", por parte del emulador. Estamos probando con el WM2003
Posted: Wed Jan 16, 2008 6:09 pm
by Antonio Linares
Code: Select all | Expand
#include "FWCE.ch"
REQUEST DBFCDX
function Main()
local oWnd
DEFINE WINDOW oWnd
ACTIVATE WINDOW oWnd ON INIT Pruebas() ON CLICK oWnd:End()
return nil
function Pruebas
LOCAL cFile := SPACE( 20 )
LOCAL cAlias:= SPACE( 20 )
LOCAL x, cDir := "\Storage Card\Prueba\"
MsgInfo( "Comenzamos en " + cDir )
IF ! FILE( cDir )
lMkDir( cDir )
ENDIF
FOR X := 1 TO 80
cFile := cDir + ALLTRIM(STR(X)) + ".dbf"
DBCREATE( cFile, {{"Uno","C",10,0}} )
NEXT X
MsgInfo( "Creados correctamente " + alltrim( str( x - 1 ) ) )
return nil
Posted: Wed Jan 16, 2008 7:41 pm
by tsales
Antonio
Con tu ejemplo, creados 46 ficheros y ...
Saludos
Posted: Wed Jan 16, 2008 8:25 pm
by Antonio Linares
Toni,
Esa es la cuestión: que a veces los crea todos, a veces solo unos cuantos y no siempre la misma cantidad.
Que solución podemos darle a eso ?
Posted: Thu Jan 17, 2008 1:36 pm
by pymsoft
Antonio,
Me vino la curiosidad e hice una prueba.
Me creó todos los archivos (las primeras 5 veces)
Luego aumenté la cantidad de archivos a crear a 300.
Ahi comienzan los errores.
prueba 1 = 225 archivos
prueba 2 = 153 archivos
prueba 3 = 290 archivos
prueba 4 = 270 archivos
Uso Microsoft Device Emulator V2
8.0.60801.00
WM5
Saludos
Posted: Thu Jan 17, 2008 1:46 pm
by pymsoft
Otra prueba,
Reinicié el emulador (WM5), hice 10 veces la prueba, en todas me creó 300 archivos....
Otra prueba con WM6, me crea 300 archivos...
Otra prueba mas, con Pocket PC 2003 second edition, 300 archivos creados...
Posted: Thu Jan 17, 2008 7:28 pm
by Antonio Linares
Parece un asunto del emulador, no de Harbour
Posted: Fri Jan 18, 2008 8:19 am
by tsales
Antonio / Pedro
Es cierto que parece un error del Emulador. Lo curioso es que sucede lo mismo con el Dbusearea(), aun existiendo los ficheros, es decir sin hacer DbCreate.
No se me ocurren mas pruebas. Tendremos que ajustarnos a lo que funciona correctamente y usar en Memoria el uso de ficheros.
Saludos