J'essaie d'ajouter une deuxième table à mon application mais je n'ai pas de chance. Les deux tables sont leurs propres classes et sont des singletons. Je passe une référence de la base de données dans la méthode onUpgrade et de nouveau en tant que variable d'instance.Tableau supplémentaire non créé
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
transTable = TransactionTable.getInstance(db);
sysTable = SystemTable.getInstance(db);
onCreate(db);
transTable.updateTable();
sysTable.updateTable();
}
La méthode onCreate appelle simplement les méthodes create dans toutes les tables.
@Override
public void onCreate(SQLiteDatabase db) {
transTable.createTable();
sysTable.createTable();
}
La seconde table, sysTable, ne lance pas et exception lors de l'exécution de l'instruction create suivante.
public void createTable() {
db.rawQuery("CREATE TABLE IF NOT EXISTS " + tableName + " ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + lastUsed
+ " INTEGER, " + balance + " INTEGER, " + accountName
+ " TEXT, UNIQUE (" + accountName + "))", null);
}
Mais, quand je lance une requête simple comme la suivante:
db.rawQuery("select * from " + tableName, null);
Je reçois une erreur indiquant
android.database.sqlite.SQLiteException: no such table: system_t: ,
while compiling: select * from system_t
Il n'y a pas de problème avec la première table étant tombé ou créé. Des idées?
homme Aaahh! De toutes les choses ... Merci bigcat. – DroidT