Spanish SQLite - ¿Cómo guardar la BD?

trejocode

Member
Licensed User
Longtime User
Hola, estoy aprendiendo a utilizar el SQLite, estoy realizando mis propias pruebas, pero... tengo las siguientes dudas, espero y puedan ayudarme, se los agradeceré.

Tengo una base de datos llamada test.db
La app tiene un EditText, un Button y un ListView, lo clásico, capturar el texto y que se guarde en la BD y y lo muestre en la Lista, eso OK.

La duda es:
Como tengo en Activity_Create el cargar la base de datos, siempre que salgo de la app se me borran los datos, ¿se borran o de alguna manera ahí están solo que nos los puedo ver?
Si es el caso de que no se guarden, ¿cómo puedo hacer que al "salir, o dar atrás o matar la app" no se borren los datos de la BD?

Ya saben, como si se tratara de una BD en MySQL donde no se borran los datos.

Gracias de verdad, espero su apoyo.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Hola, estoy aprendiendo a utilizar el SQLite, estoy realizando mis propias pruebas, pero... tengo las siguientes dudas, espero y puedan ayudarme, se los agradeceré.

Tengo una base de datos llamada test.db
La app tiene un EditText, un Button y un ListView, lo clásico, capturar el texto y que se guarde en la BD y y lo muestre en la Lista, eso OK.

La duda es:
Como tengo en Activity_Create el cargar la base de datos, siempre que salgo de la app se me borran los datos, ¿se borran o de alguna manera ahí están solo que nos los puedo ver?
Si es el caso de que no se guarden, ¿cómo puedo hacer que al "salir, o dar atrás o matar la app" no se borren los datos de la BD?

Ya saben, como si se tratara de una BD en MySQL donde no se borran los datos.

Gracias de verdad, espero su apoyo.

Puedes compartir el código que realizas ese proceso, si no vemos el código es difícil ayudarte.
 

JCO

Active Member
Licensed User
Longtime User
Cuando creas la aplicación, pones los archivos que ésta necesita, incluida la BD, en la carpeta "Files".
Al lanzar la aplicación, todos estos archivos se copian a la carpeta File.DirAssets del device.
ésta es sólo de lectura, por lo que, en la primera ejecución del programa, tienes que copiarlos a una carpeta que sea de lectura/escritura, típicamente la "File.DirInternal" o "File.DirDefaultExternal".
Además, si no, cada vez que la lanzas, el antiguo archivo db se sobreescribe, con lo cual los datos se pierden.

Algo así en el Main / Activity_Create o en el starter:

B4X:
If (File.Exists(File.DirInternal, "mydb.db") = False) Then
    File.Copy(File.DirAssets, "mydb.db", File.DirInternal, "mydb.db")
End If
 
Top