2010-10-30 6 views
0
private static final String DB_NAME = "MyDebts.db"; 
private static final String CREATE_DB_QUERY = 
    "CREATE TABLE " + Dao.CONTACTS_TABLE_NAME + " (ContactId varchar(64), Credit integer);\n" + 
    "CREATE TABLE " + Dao.SETTINGS_TABLE_NAME + " (Name varchar(64), Value varchar(64));" 
    ; 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREATE_DB_QUERY); 
    } 

Comme je vois en mode débogage produit db.execSql sans aucune exception, mais dans ce code:Une telle exception dans la table android

String lastStepIndexString = null; 
    try { 
    lastStepIndexString = SettingsDao.readSetting("last-step-index"); 
    } catch (Exception ex) { 
    makeToast(ex.getMessage()); 
    } 

catch() ... est déclenchée par exception avec le message comme 'Il n'y a pas de table avec le nom "Préférences"' quelqu'un peut me dire le problème?

Répondre

0

Y a-t-il une table nommée Préférences créées?

Utilisez la méthode décrite ici pour examiner votre base de données: http://developer.android.com/guide/developing/tools/adb.html#sqlite

Je ne sais pas ce qui est DAO.SETTINGS_TABLE_NAME, vous pouvez peut-être essayer de créer un nom de base de données Préférences directement.

private static final String CREATE_DB_QUERY = 
    "CREATE TABLE " + Dao.CONTACTS_TABLE_NAME + " (ContactId varchar(64), Credit integer);\n" + 
    "CREATE TABLE Preferences(Name varchar(64), Value varchar(64));"; 
+0

merci pour le lien sur le guide adb. avec "adb ..." je vois qu'une seule table a été créée. requête en texte brut (sans constantes) ne donne aucun résultat pour moi. et si j'essaye de changer l'ordre des tables pour créer j'ai vu que l'émulateur crée juste une table et c'était la première table dans la requête: Tableau de préférences. alors j'essaie (en train d'écrire rhis comment =)) de séparer les requêtes à la "db.execSQL (CREATE_DB_QUERY_1); db.execSQL (CREATE_DB_QUERY_2);" et il fonctionne! – semen

0

Solution: requêtes distinctes à la:

db.execSQL(CREATE_DB_QUERY_1); 
db.execSQL(CREATE_DB_QUERY_2); 
Questions connexes