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 :

Création de table SQLLITE


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut Création de table SQLLITE
    Bonjour,

    J'essaie de créer une base de données sur SQLLITE, mais il ne me crée pas la deuxième table !!!

    ******
    EDIT

    Oublier la valeur des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	private static final String SMS_TABLE = "sms";
    	private static final String SMS_ID = "ID_SMS";
    	private static final String MOT_CLE = "MOT_CLE";
    	private static final String TABLE_OPTIONS = "sms_options";
    	private static final String OPTION_ID = "OPTION_ID";
    	private static final String NOM_OPTION = "NOM_OPTION";
    	private static final String VALUE_OPTION = "VALUE_OPTION";
    *******

    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
     
    	private static final String CREATE_BDD = "CREATE TABLE " + SMS_TABLE + " ("
    	+ SMS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + MOT_CLE + " TEXT NOT NULL);";
     
    	private static final String CREATE_BDD2 = "CREATE TABLE " + TABLE_OPTIONS + " ("
    	+ OPTION_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NOM_OPTION + " TEXT NOT NULL,"
    	+ VALUE_OPTION + " TEXT NOT NULL);";
     
     
    	public MaBaseSQLite(Context context, String name, CursorFactory factory, int version) {
    		super(context, name, factory, version);
     
    	}
     
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		//on créé la table à partir de la requête écrite dans la variable CREATE_BDD
    		db.execSQL(CREATE_BDD);
    		db.execSQL(CREATE_BDD2);
    	}
    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
     
    06-06 09:57:21.646: E/AndroidRuntime(321): Uncaught handler: thread main exiting due to uncaught exception
    06-06 09:57:21.665: E/AndroidRuntime(321): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.projet/com.test.projet.OptionsActivity}: android.database.sqlite.SQLiteException: no such table: sms_options: , while compiling: SELECT VALUE_OPTION FROM sms_options WHERE NOM_OPTION = flash
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.os.Looper.loop(Looper.java:123)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread.main(ActivityThread.java:4363)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at java.lang.reflect.Method.invokeNative(Native Method)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at java.lang.reflect.Method.invoke(Method.java:521)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at dalvik.system.NativeStart.main(Native Method)
    06-06 09:57:21.665: E/AndroidRuntime(321): Caused by: android.database.sqlite.SQLiteException: no such table: sms_options: , while compiling: SELECT VALUE_OPTION FROM sms_options WHERE NOM_OPTION = flash
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:49)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1221)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1108)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1066)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1143)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at com.test.projet.SMSBDD.nb_enregistrement_flash(SMSBDD.java:99)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at com.test.projet.OptionsActivity.onCreate(OptionsActivity.java:38)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    06-06 09:57:21.665: E/AndroidRuntime(321): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    Pourtant la table sms est bien crée sans problème, je ne vois pas de problème de syntaxe dans ma requete !

    Quelqu'un a une idée ?

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Bonjour,

    Essayes d'inverser ces deux lignes pour voir si les tables sont créées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    db.execSQL(CREATE_BDD);
    		db.execSQL(CREATE_BDD2);
    Ensuite, montre nous ton create généré en le mettant dans les logs par exemple.

    Pour finir, où fais tu cette requête:
    SELECT VALUE_OPTION FROM sms_options WHERE NOM_OPTION = flash

  3. #3
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut
    J'ai déjà essayer d'inverser les deux instructions, j'ai essayé d'executer uniquement la deuxieme ligne mais sans succès j'ai toujours la meme erreur : la table n'est pas créer et l'appli plante a la première requête sur celle ci.

    J'ai essayé sa ! je ne vois pas le sop dans les logs pourtant si je met un point d’arrêt sur une des deux lignes l’application s’arrête sur celui ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void onCreate(SQLiteDatabase db) {
    		//on créé la table à partir de la requête écrite dans la variable CREATE_BDD
    		db.execSQL(CREATE_BDD);
    System.out.println("Le script passe ici");
    		db.execSQL(CREATE_BDD2);
    	}
    Appel de la requete Sql qui fait planter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public int nb_enregistrement_flash(){
    		Cursor c = bdd.query(TABLE_OPTIONS, new String[] {VALUE_OPTION}, NOM_OPTION + " = flash", null, null, null, null);
    		return c.getCount();
    	}

  4. #4
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 245
    Par défaut
    Ça t'affiche "Le script passe ici" ?
    Moi j'ai une classe static qu'extends SQLiteOpenHelper et ben ça ne passe qu'une fois dans onCreate().

    Quand je veux créer ou modifier une table, je suis obligé de désinstaller l'application.
    Enfin il existe probablement d'autre solution, mais j'aime bien faire comme ça.

    Au lieu d'utiliser un query tu devrais utiliser un rawQuery.
    Mais le problème n'est pas là.

    T'as table sms_options n'a jamais été créé.

    Désinstalle ton application pour voir.

  5. #5
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut
    Bonjour,

    Non "le script passe ici" n'est pas affiché mais le point d’arrêt est trouvé je trouve sa bizarre !

    Je travaille sur émulateur, j'ai essayé de désinstaller l'appli mais sa ne fonctionnait pas donc dans le doute j'ai supprimer l’émulateur et j'en ai recréer un !

    Mais toujours le même problème !!

    J'ai essayé de recréer un nouveau projet, en exécutant uniquement la deuxième requête ça ne fonctionne pas ! Je me suis dit que ca venait forcement de la syntaxe de la requête MAIS !

    j'ai également essayer (sur ce nouveau projet) d’exécuter la première requête (qui marche normalement) mais cette fois ci sa plante ! C'est a plus rien y comprendre je continue mes tests je vous tiens au courant !

    Si quelqu'un a une idée !!

    ps : Peut on voir sur le téléphone la structure des tables crée (genre phpmy admin) pour être sur de ce qui est crée ou non !

  6. #6
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut
    Bon je reviens sur le dernier message !

    Dans mon nouveau projet, ma première requête fonctionne bien (j'ai du me mélanger avec tous les tests que je fais) ! Mais la deuxième ne fonctionne toujours pas !! J'ai testé de mettre ma requête en dur (sans concaténation) mais toujours pareil la table n'ai pas crée !

    Je vois vraiment pas....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (VC++6 /C) Pb de création de table Paradox
    Par Vow dans le forum Paradox
    Réponses: 4
    Dernier message: 28/09/2004, 13h15
  2. Création de table MySQL
    Par dehbi dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/04/2004, 10h59
  3. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17

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