miércoles, 13 de marzo de 2013

Copiar base de datos desde la carpeta assets

Para copiar una base de datos desde assets, debemos introducir el siguiente código dentro de la clase BaseDatosHelper :


Una vez echo esto, dentro de la clase CapaAccesoDatos debemos introducir el siguiente código


Donde debemos modificar com.paquete.ejemplo por el nombre de nuestro paquete. Con esto ya tenemos la base de datos guardada dentro de la variable database y podemos manipularla como queramos

3 comentarios:

  1. Buenos dias Ivan.
    Estoy desarrollando una pequeña app donde quiero distruibuir una bas de datos sqlite junto con el apk. He visto tu ejemplo y como en muchas páginas que he visitado veo que se copia la BBDD en asset y a continuación en una función copiarbasedatos se lee con inputstream y se escribe con outputstream como cualquier fichero.
    Mi problema es que al indicarle al objeto OutputStream la ruta y fichero a crear me da un error de fichero no se puede crear.
    Nota : Mi ruta la establezco como /data/data/mi_paquete/databases/mi_bbdd

    Si lo pruebo en el emulador de eclipse funciona bien pero si lo depuro contra un terminal fisico me arroja el error comentado.
    ¿Puedes aportar algo de luz?
    Gracias.

    ResponderEliminar
    Respuestas
    1. Hola, eh tenido el mismo problema, y la respuesta que encontré en la Web es; que no se pueden copiar archivos que superen 1 Mb desde la assets o raw. A esta limitación eh tratado de buscarla en algún libro pero no pude verificar. Si alguien me puede decir en que libro figura esta limitación, le estaré muy agradecido.
      Saludos.

      Eliminar
    2. Me olvide ja, a la info la encontre en http://www.aprendeandroid.com/l5/sql4.htm

      Eliminar