Дополнительная таблица не создана - PullRequest
0 голосов
/ 11 марта 2012

Я пытаюсь добавить в приложение вторую таблицу, но мне не везет.Две таблицы являются их собственными классами и являются синглетонами.Я передаю ссылку на базу данных в методе onUpgrade и снова в качестве переменной экземпляра.

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    transTable = TransactionTable.getInstance(db);
    sysTable = SystemTable.getInstance(db);

    onCreate( db );

    transTable.updateTable();
    sysTable.updateTable();
}

Метод onCreate просто вызывает методы create во всех таблицах.

@Override
public void onCreate(SQLiteDatabase db) {
    transTable.createTable();
    sysTable.createTable();
}

Вторая таблица, sysTable, не выдает и не создает исключение при выполнении следующего оператора create.

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);
}

Но, когда я запускаю простой запрос, такой как следующий:

 db.rawQuery("select * from " + tableName, null);

Я получаю сообщение об ошибке

 android.database.sqlite.SQLiteException: no such table: system_t: , 
 while compiling: select * from system_t

Нет проблем с удалением или созданием первой таблицы.Есть идеи?

1 Ответ

0 голосов
/ 11 марта 2012

изменить метод createTable на код:

 db.rawQuery

до

db.execSQL()
...