Jump to content
Sign in to follow this  
belefti

comment utiliser un fichier .sqilte dans une appli Android ?????

Recommended Posts

bonjour tlm

quelqu'un peut etre peux m'aider, j'ai une Base de donnée sous forme de fichier .sqilte que j'ai créer avec sqlite manager, je souhaite utiliser ce fichier dans mon appli j e ne sais pas comment faire pour ce connecter a ce fichier et utiliser les données ????

merci d'avance

Share this post


Link to post
Share on other sites

Je crois que tu ne peux travailler qu'avec des bases de données en *.db, tout du moins c'est l'extension qui est produite lorsque tu crées une base de données depuis ton application.

Cependant l'accès au base depuis le téléphone se fait grâce à sqlite3. Donc il est peut être possible que ça marche.

Pour comprendre comment fonctionne l'accès aux bases de données, je te conseille de suivre le tutoriel sur le NotePad : http://developer.android.com/guide/tutorials/notepad/index.html

Tu verras comment on crée une base, comment on y accède, et comment on peut récupérer certains éléments.

Bon courage ;)

Share this post


Link to post
Share on other sites

Peut importe l'extension ... ton fichier doit simplement être du SQLite 3.

En ce qui concerne le fonctionnement, tu remarquera qu'une base de donnée SQLite Android comporte une table supplémentaire (meta) qui contient des informations sur la localisation entre autre. Si tu veux utiliser ta propre base de donnée créée à partir d'une autre source qu'Android alors il va te falloir mettre les mains dans le cambouis avec des classes du packages android.database :)

Bon courage

Share this post


Link to post
Share on other sites

Coucou tout le monde!

Désolé pour le déterrage mais j'ai un peu le même souci: je souhaite utiliser un fichier sqlite dans mon projet Android.

J'ai suivi ce début de tuto:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

J'ai bien ajouté la table "android_metadata", mais je me retrouve toujours avec une base vide.

A la première execution, j'obtiens ca:

11-02 16:42:18.012: ERROR/Database(226): sqlite3_open_v2("/data/data/MonAppli/databases/MaBDD", &handle, 1, NULL) failed

et :

11-02 16:42:18.202: ERROR/AndroidRuntime(226): Uncaught handler: thread main exiting due to uncaught exception
11-02 16:42:18.223: ERROR/AndroidRuntime(226): java.lang.Error: Erreur a la copie de la base de données
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at com.MonAppli.BddHelper.createDataBase(BddHelper.java:42)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at com.MonAppli.main.test(main.java:26)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at com.MonAppli.main.onCreate(main.java:18)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.os.Looper.loop(Looper.java:123)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at android.app.ActivityThread.main(ActivityThread.java:4203)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at java.lang.reflect.Method.invokeNative(Native Method)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at java.lang.reflect.Method.invoke(Method.java:521)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
11-02 16:42:18.223: ERROR/AndroidRuntime(226):     at dalvik.system.NativeStart.main(Native Method)

Et à chaque nouveau lancement:

11-02 16:49:04.982: ERROR/AndroidRuntime(502): Uncaught handler: thread main exiting due to uncaught exception
11-02 16:49:05.002: ERROR/AndroidRuntime(502): java.lang.RuntimeException: Unable to start activity ComponentInfo{MonAppli/MonAppli.main}: android.database.sqlite.SQLiteException: no such table: MaTable: , while compiling: SELECT Code, Nom, Autorise FROM MaBDD
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.os.Looper.loop(Looper.java:123)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread.main(ActivityThread.java:4203)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at java.lang.reflect.Method.invokeNative(Native Method)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at java.lang.reflect.Method.invoke(Method.java:521)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at dalvik.system.NativeStart.main(Native Method)
11-02 16:49:05.002: ERROR/AndroidRuntime(502): Caused by: android.database.sqlite.SQLiteException: no such table: MaTable: , while compiling: SELECT Code, Nom, Autorise FROM MaBDD
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:49)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1118)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1006)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:964)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1041)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at MonAppli.main.test(main.java:37)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at MonAppli.main.onCreate(main.java:18)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
11-02 16:49:05.002: ERROR/AndroidRuntime(502):     ... 11 more

D'après ce que je peux comprendre, le problème viendrait du premier lancement, à la copie de la BDD...

Ma BDD est placée dans le répertoire "assets"... Est ce que c'est bien, pas bien? Sinon, ou dois-je le placer?

Si vous avez besoin de bouts de code, n'hésitez pas...

Et merci d'avance pour le coup de main...

Share this post


Link to post
Share on other sites

Salut et merci pour ta réponse!

J'avais commencé à jeter un oeil à ton post mais je me suis arrêté à la partie où il faut splitter la bdd..

Est ce que j'ai besoin de le faire étant donné que ma base fait moins de 100Ko?

Elle est toute petite (1 table avec 300 entrées, deux avec 700 entrées et deux avec 50...)

En tout cas, je vire la metadata... Merci... lol.. Ca fera gagner quelques octets... MDR :D

Edit : Je viens de regarder, mon fichier .sqlite fait 46Ko... lol

Edit 2: Je viens de réussir à le faire. Alors pour ceux que ca intéresse, le fichier .sqlite doit être placé dans "Assets" puis, effectivement, il FAUT créer une nouvelle base vide dans l'apli puis faire une copie par bytes de notre fichier vers la base vierge pour l'écraser.

Edited by Kricek
  • Like 1

Share this post


Link to post
Share on other sites

@belefti : Ca me regarde peut etre pas mais... Un ptit [Résolu] ajouté au début du titre de ton post serait pas mal... Ca aiderait à voir plus clairement ceux qui ont encore besoin d'un coup de main... ;)

Share this post


Link to post
Share on other sites

Salut et merci pour ta réponse!

J'avais commencé à jeter un oeil à ton post mais je me suis arrêté à la partie où il faut splitter la bdd..

Est ce que j'ai besoin de le faire étant donné que ma base fait moins de 100Ko?

Elle est toute petite (1 table avec 300 entrées, deux avec 700 entrées et deux avec 50...)

En tout cas, je vire la metadata... Merci... lol.. Ca fera gagner quelques octets... MDR :D

Edit : Je viens de regarder, mon fichier .sqlite fait 46Ko... lol

Edit 2: Je viens de réussir à le faire. Alors pour ceux que ca intéresse, le fichier .sqlite doit être placé dans "Assets" puis, effectivement, il FAUT créer une nouvelle base vide dans l'apli puis faire une copie par bytes de notre fichier vers la base vierge pour l'écraser.

Réponse malgré tout :

en fait la partie ou je splitte la base de donnée est inutile.

Je le faisais parce que je mettais la base de données dans les resources, ou un fichier ne peut pas etre plus gros que 1 Mo, mais on peut aussi mettre les fichiers dans le répertoire Assets, effectivement, ou il n'y a plus la limite de 1 Mo par fichier...

Emmanuel / Alocaly

Share this post


Link to post
Share on other sites

Je le faisais parce que je mettais la base de données dans les resources, ou un fichier ne peut pas etre plus gros que 1 Mo, mais on peut aussi mettre les fichiers dans le répertoire Assets, effectivement, ou il n'y a plus la limite de 1 Mo par fichier...

Du coup, concrètement, quelle est la différence entre le répertoire Assets et le répertoire Resources? Concrètement, pourquoi placeer mon fichier plus dans l'un que dans l'autre?

Share this post


Link to post
Share on other sites

Il me semble que les resources sont localisables et adaptables par type d'écrans.

Ce n'est pas vrai pour les assets !

Emmanuel / Alocaly

Share this post


Link to post
Share on other sites

salut

j'ai une base de données cree sous sqliteadmin et je suis entrain de develpper une application android sous eclipse comment je peut faire une connection pour untiliser cette base dans mon application?????????

merci

Share this post


Link to post
Share on other sites

Bonjour à tous voilà, j'ai utiliser ce tutoriel http://www.reigndesi...d-applications/

mais j'ai la même erreur que kricek: no such table.

Après avoir fait un adb pull de ma BD je remarque qu'elle ne contient que android_metadata alors que mes autres tables n'ont pas étaient copier.

Si vous avez une idée merci ;)

Share this post


Link to post
Share on other sites

Bonjour g un projet a faire qui consiste a faire la meme chose g rencontre ton probleme mais j'arrive pas a le resoudre eest-ce-que tu peut m'envoyer ton fichier source pt m'aider

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  





×
×
  • Create New...