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 :

Exécution de la méthode onUpgrade


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut Exécution de la méthode onUpgrade
    Bonjour,

    Je m'excuse d'avance si ce sujet a déjà été maintes fois répétés. Si c'est le cas, je me contenterais d'un lien parce que malgré mes recherches, je n'ai pas trouvé de réponses convaincantes.
    En faite, dans mon application, j'ai une classe qui étends SQLiteOpenHelper et qui donc implémente onCreate et onUpgrade.

    Mon problème repose sur l'exécution de onUpgrade.
    J'ai lu à gauche et à droite qu'il s'exécutait lorsque le numéro de la base de donnée changeait mais j'ai beau l'incrementer, elle ne s'exécute jamais.
    Ci-dessus, l'instanciation de ma classe qui étend SQLiteOpenHelper :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.baseHelper = new MaBaseOpenHelper(c, BASE_NOM, null, BASE_VERSION);
    Je modifie donc ma constante BASE_VERSION (1, 2, 3, ...) mais je ne rentre jamais dans onUpgrade.

    Si vous avez une explication à mon problème, je vous remercie d'avance !

  2. #2
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    J'ai déjà utilisé cette classe, et le onUpgrade fonctionnait correctement.
    Donne-nous le code de ta classe MaBaseOpenHelper.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut
    Elle n'est pas bien longue :

    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
    32
    33
    34
    35
    36
    37
    package org.randoomz.persistance;
     
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
     
    class MaBaseOpenHelper extends SQLiteOpenHelper {
     
    	private static final String REQUETE_FILM = "CREATE TABLE films ("
    			+ "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "nom TEXT NOT NULL, "
    			+ "dispo INTEGER NOT NULL, " + "possesseurs TEXT NOT NULL);";
    	private static final String REQUETE_POSS = "CREATE TABLE possesseurs ("
    			+ "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "nom TEXT NOT NULL)";
     
    	public MaBaseOpenHelper(Context context, String name,
    			CursorFactory factory, int version) {
    		super(context, name, factory, version);
    		Log.i("MonLog", "Constructeur MaBaseOpenHelper");
    	}
     
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		Log.i("MonLog", "Creation Requête");
    		db.execSQL(REQUETE_FILM);
    		db.execSQL(REQUETE_POSS);
    	}
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		Log.i("MonLog", "Update des tables");
    		db.execSQL("DROP TABLE IF EXISTS films;");
    		db.execSQL("DROP TABLE IF EXISTS possesseurs;");
    		onCreate(db);
    	}
    }

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,


    Tu as tout dans la description de la méthode .

    http://developer.android.com/referen...enHelper.html|

    public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)

    Since: API Level 1
    Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of getWritableDatabase() or getReadableDatabase() is called.
    Parameters

    context to use to open or create the database
    name of the database file, or null for an in-memory database
    factory to use for creating cursor objects, or null for the default
    version number of the database (starting at 1); if the database is older, onUpgrade(SQLiteDatabase, int, int) will be used to upgrade the database; if the database is newer, onDowngrade(SQLiteDatabase, int, int) will be used to downgrade the database

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Par défaut
    Je n'avais été voir l'explication que de onUpgrade dans la doc, merci

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

Discussions similaires

  1. Exécution d'une méthode dans Page_Load
    Par Definol dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/07/2007, 15h09
  2. Réponses: 13
    Dernier message: 29/06/2007, 18h03
  3. [JAVA]Ralentir l'exécution d'une méthode
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/03/2007, 10h48
  4. Réponses: 4
    Dernier message: 31/10/2006, 09h12
  5. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04

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