Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Android tiene caché? (https://www.clubdelphi.com/foros/showthread.php?t=96872)

David Jiménez 04-10-2024 08:23:55

Android tiene caché?
 
Estoy haciendo una aplicación para android con bases de datos, que en el deployment la instalo en assets/internal
Me está ocurriendo algo extrañísimo
Tenía unos datos en las tablas y ahora tengo otros diferentes. Por concretar, antes tenía 3 ventas y ahora tengo 8 ventas de clientes diferentes
En Delphi corro la aplicación sin depurar (shift+ctrl+F9) y se hace el deployment.
Pues los datos que me aparecen en Ventas son las 3 ventas antiguas y no las nuevas 8.


He estado buscando y parece que a veces puede que no se sobreescriba bien, pero con un gestor de archivos en android he revisado los ficheros que tengo y son todos los correctos.
Con este gestor he descargado la base de datos y aparecen las 8 ventas


¿Cómo es posible? donde estás esos datos, hay alguna caché que los mantiene, esto es de locos

Casimiro Notevi 04-10-2024 11:19:08

Seguramente el problema es la forma en que usas las transacciones.

navbuoy 05-10-2024 15:25:20

por lo menos en Windows y C++ Builder mis componentes tienen la propiedad ApplyUpdates() que es necesario llamarla despues de insertar datos o tal si la propiedad CachedUpdates esta activada, hasta que no hagas el Commit con ApplyUpdates() podrian quedarse en la cache y no figurar en la Tabla como ya fijados

Pero no se eh? Android no lo controlo mucho, pero es lo que dice Casimiro, las Transacciones y el Commit seguramente

David Jiménez 23-10-2024 12:28:16

Gracias por la respuesta
Si no hay una caché que no controlo, me tranquiliza


En principio las transacciones están bien gestionadas. En la versión de windows del programa no hay problema, todo está bien.



Estoy empezando a usar ChangeView de Interbase y el problema debe estar ahí. Aunque copio la base de datos (la misma que uso en windows) al ser Interbase un sistema multiversión, la versión que veo en Android debe ser una versión anterior de los datos :mad:

jmbarrio 28-10-2024 11:40:08

Buenas, en mi caso cuando paso la BD modificada (campo nuevo en alguna tabla, nuevos registros etc, etc .....) que tengo en windows al dispositivo android y arranco la apk la bd embebida no se me actualiza en el momento, a pesar de que previamente desinstalo la apk del dispositivo
Tengo que ir al gestor de aplicaciones, ir a la apk, ir al almacenamiento y borrar datos. Vuelvo a arrancar la apk y ya está la BD actualizada. Esto me pasa con tablets Samsung, sin embargo con mi movil Xiaomi no me ocurre.
Por si te sirve de ayuda.

Un saludo.

mamcx 28-10-2024 15:17:00

Cita:

Empezado por David Jiménez (Mensaje 557838)
la instalo en assets/internal

Eso es MUY incorrecto, si crees que puedes modificar los datos ahi.

Android si tiene cache. De hecho varios.

Y el nombre de los directorios IMPORTA. Es *assets* ie: graficos, fuentes, etc. NO BD.


Pero el punto es que los datos de una bd se deben operar desde un directorio apropiado:

https://stackoverflow.com/questions/...-on-the-device

jmbarrio 28-10-2024 16:23:36

Buenas tardes, me he expresado mal con lo de la BD modificada, la BD actualizada la paso a través del instalador en el dispositivo android, con el deployment en assets\internal para la ruta de la BD

y al arrancar la apk, esta no se entera del cambio de BD hasta que no borro los datos, es como que se guarda una copia de la BD anterior en la cache.

Saludos.

mamcx 28-10-2024 17:32:57

No me queda claro donde queda la bd copiada.

Y si abres la conexion contra `asset` o contra la ruta correcta. A partir de allí, si haces `commit` debería funcionar.


PD: Haces alguna configuración personalizada con `PRAGMA`s?


La franja horaria es GMT +2. Ahora son las 09:34:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi