Page 2 of 2

PostPosted: 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

PostPosted: 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 )

PostPosted: Wed Jan 16, 2008 3:01 pm
by tsales
Antonio
Comprobado.
Todos los valores devueltos diferentes de -1

Saludos

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

PostPosted: 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

PostPosted: Wed Jan 16, 2008 6:09 pm
by Antonio Linares
Code: Select all  Expand view
#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

PostPosted: Wed Jan 16, 2008 7:41 pm
by tsales
Antonio
Con tu ejemplo, creados 46 ficheros y ...

Image

Saludos

PostPosted: 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 ?

PostPosted: 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

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

PostPosted: Thu Jan 17, 2008 7:28 pm
by Antonio Linares
Parece un asunto del emulador, no de Harbour

PostPosted: 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