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 :

utilisation d'une base de donnée SQlite déjà existante avec Eclipse


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut utilisation d'une base de donnée SQlite déjà existante avec Eclipse
    Bonsoir, alors voilà, je suis débutant et là, je sèche.

    Lorsque l'on crée une base de données SQlite sous Eclipse, elle est persistante dans les émulateurs et un vrai "device" comme mon Smartphone.

    Seulement, voilà, je ne veux pas "recréé" ma base de données à chaque "installations" du programme sur un nouveau "device".

    Ce que je cherche à faire, c'est d’intégré ma base de donnée déjà existante dans le projet sous Eclipse.
    Comme cela, je peux accéder directement aux données de ma base SQlite sans avoir a recréé toute les données utiles à mon programme.

    J’espère que j'ai été clair dans mon souci ?
    Merci d'avance et bonne soirée.

  2. #2
    Membre habitué Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Points : 133
    Points
    133
    Par défaut
    Pour utiliser une base de données existante, il faut la mettre dans le répertoire assets et la copier dans le téléphone au lancement ou quand il y a mise à jour.
    Applications et jeux gratuits sur http://www.kamaxandroid.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ok, je crois avoir déjà entendu parler de ce répertoire "assets".

    Mais, une fois dans le répertoire "assets", elle ne se copie toute seule pendant l'installation sur le "device" ?
    Je doit le faire manuellement ?

  4. #4
    Membre habitué Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Points : 133
    Points
    133
    Par défaut
    Oui, il faut la copier manuellement. C'est pas vraiment la solution idéale car si la base change il faut la recopier à nouveau. J'utilisais ce système au départ mais je l'ai abandonné pour une base de donnés en ligne sur un de mes hébergeur.

    C'est un peu plus lourd à mettre en place mais pour les mises à jour c'est plus pratique. L'application test le nombre d'entrées dans la base et la compare avec la version en ligne et fait mise à jour si il faut.

    Par contre si ta base ne change pas souvent, on peut très bien imaginer la copier du répertoire assets au moment du changement de version de l'application.

    Edit:
    Voila le code que j'utilise pour copier la base:

    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
    27
    28
    29
    30
    31
     
    public static String DB_PATH = "/data/data/com.truc.machin/databases/";
    public static String DB_NAME = "le_nom_de_la_base";
     
        public void copyDataBase() throws IOException{
     
        	// crée le repertoire
    		File f=new File(DB_PATH);
    	    f.mkdirs(); 
     
        	//Open your local db as the input stream
        	InputStream myInput = this.getAssets().open(DB_NAME);
     
        	// Path to the just created empty db
        	String outFileName = DB_PATH + DB_NAME;
     
        	//Open the empty db as the output stream
        	OutputStream myOutput = new FileOutputStream(outFileName);
     
        	//transfer bytes from the inputfile to the outputfile
        	byte[] buffer = new byte[1024];
        	int length;
        	while ((length = myInput.read(buffer))>0){
        		myOutput.write(buffer, 0, length);
        	}
     
        	//Close the streams
        	myOutput.flush();
        	myOutput.close();
        	myInput.close();
        }
    Il y a peut être mieux et le "throws IOExceptio" n'est pas super, faudrait le remplacer par un try-catch.
    Applications et jeux gratuits sur http://www.kamaxandroid.com

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonsoir Linked, merci pour tes réponses.

    Effectivement, cela n'est pas très pratique.
    Je pensais qu'une base de donnée pouvait être inclue directement dans le "package" a l'installation du programme sur le téléphone.

    En tout cas, merci.
    Je débute en programmation sous android, je vais donc chercher une autre façon de faire.
    La base de données ne devant pas être modifie souvent, je vais voir ce problème autrement.

    Merci et bonne soirée.

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    bonjour

    je cherche a creer et mettre a jour si besoin une base sqlite a partir d'un base mysql sur serveur

    pouvez m'aider a trouver un script, merci enormement!!!

    j'ai fait un truc en php qui m'extrait en xml des data de ma base mysql
    j'arrive a les parser avec json mais je bloque pour le stockage sqlite et le test mis a jour

    peut etre que ma demarche n'est pas la bonne


    merci encore
    Christophe

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut bdd sqlliteandroid
    bonjour y a quelqu'un qui peut m'aider j'ai besoin d'ouvrir ma base de donnée sqllite sous android j'ai déjà l'importé mais j'arrive pas à l'ouvrir
    je travaille sous eclipse et merci d'avance

Discussions similaires

  1. [ODBC] Utilisation d'une base de données Microsoft Works en PHP, possible ?
    Par pikatshu dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/04/2007, 09h39
  2. [JGuard] Utilisation d'une base de donnée
    Par worldchampion57 dans le forum Sécurité
    Réponses: 3
    Dernier message: 09/06/2006, 01h38
  3. [VS2005]Utilisation d'une base de données avec VB 2005
    Par gabrielgarcin dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2006, 16h46
  4. Réponses: 5
    Dernier message: 13/12/2005, 17h04
  5. Utilisation d'une base de données a distance
    Par newbie57 dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/10/2005, 10h25

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