IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Accès à une base de données existante


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Par défaut Accès à une base de données existante
    Bonsoir

    Je débute dans la programmation Android, avec Android Studio.
    Pour ma première application, j'ai pensé créer une petite base de données SqlLite simple (2 champs : Nom + n° de téléphone).
    Grace à divers exemples, j'ai trouvé comment créer cette base et ajouter/supprimer/visualiser ses fiches sur mon Smartphone.
    Mais mon idée était de peupler cette base sur un PC, beaucoup plus confortable qu'un Smartphone pour faire de la saisie de données, et de copier cette base ainsi pré-remplie sur le Smartphone

    Mon problème est qu'en utilisant l'explorateur de fichiers, on n'a pas accès à ce fichier .db constituant la base.
    D'après ce que j'ai compris, il faut avoir un "privilège root" pour y avoir accès.
    Comment fait-on ?
    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Par défaut
    Bonjour,

    Il faut mettre votre base SQLite au sein du dossier assets de votre application.

    Au moment du lancement de l'application, vous aurez ensuite à copier la base de données SQLite se trouvant dans le fichier au sein de la base de données SQLite locale associée à votre application.

    Le code suivant vous permettra d'effectuer cette copie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    // ...
     
    public static String DB_PATH = "/data/data/com.example.your_app/databases/";
    public static String DB_NAME = "Nom_Database_En_Local";
     
    // ...
     
    public void copyDataBase() throws IOException {
     
            String outFileName = DB_PATH + DB_NAME; 
            OutputStream myOutput = new FileOutputStream(outFileName);
            byte[] buffer = new byte[1024];
            int length = -1;
     
            InputStream myInput = myContext.getAssets().open("LE_NOM_DE_VOTRE_BASE_DANS_ASSETS");
     
            while ((length = myInput.read(buffer)) > 0) {
                myOutput.write(buffer, 0, length);
            }
     
            myInput.close();
            myOutput.flush();
            myOutput.close();
    }
    Il faudra prendre garder également à n'effectuer cette copie qu'au premier lancement de l'application.

    Sylvain

  3. #3
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par alain lecomte Voir le message
    Bonsoir

    Je débute dans la programmation Android, avec Android Studio.
    Pour ma première application, j'ai pensé créer une petite base de données SqlLite simple (2 champs : Nom + n° de téléphone).
    Grace à divers exemples, j'ai trouvé comment créer cette base et ajouter/supprimer/visualiser ses fiches sur mon Smartphone.
    Mais mon idée était de peupler cette base sur un PC, beaucoup plus confortable qu'un Smartphone pour faire de la saisie de données, et de copier cette base ainsi pré-remplie sur le Smartphone

    Mon problème est qu'en utilisant l'explorateur de fichiers, on n'a pas accès à ce fichier .db constituant la base.
    D'après ce que j'ai compris, il faut avoir un "privilège root" pour y avoir accès.
    Comment fait-on ?
    Merci.
    Il suffit gérer cela au niveau du SQLiteOpenHelper. On peut y faire les CREATE mais aussi les INSERTS.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. [C#] Accés à une base de données AS400
    Par Green Hornet dans le forum Accès aux données
    Réponses: 8
    Dernier message: 14/11/2011, 11h26
  2. Réponses: 4
    Dernier message: 15/01/2005, 16h05
  3. Accès à une base de données ACCESS
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/01/2005, 08h23
  4. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39
  5. Réponses: 2
    Dernier message: 01/10/2004, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo