У меня есть приложение для Android, которое должно проверить, есть ли в базе данных запись, а если нет, обрабатывать некоторые вещи и, в конечном итоге, вставлять их и просто читать данные из базы данных, если данные действительно существуют. Я использую подкласс SQLiteOpenHelper для создания и получения перезаписываемого экземпляра SQLiteDatabase, который, как я думал, автоматически позаботился о создании таблицы, если он еще не существует (поскольку код для этого в onCreate (... )).
Однако, когда таблица еще не существует, а первый метод запускается на объекте SQLiteDatabase, у меня есть вызов запроса (...), в моем логарифме отображается ошибка "I/Database (26434): sqlite return: код ошибки = 1, msg = no такая таблица: appdata", и, конечно же, таблица appdata не создается.
Любые идеи о том, почему?
Я ищу либо метод для проверки, существует ли таблица (потому что, если это не так, данные, конечно, не в ней, и мне не нужно ее читать, пока я не напишу на нее, что, кажется, правильно создать таблицу) или способ убедиться, что он создан и просто пуст, ко времени первого вызова запроса (...)
ИЗМЕНИТЬ
Это было опубликовано после двух ответов ниже:
Кажется, я нашел проблему. По какой-то причине я решил, что для каждой таблицы должен быть создан другой SQLiteOpenHelper, хотя оба доступа к одному и тому же файлу базы данных. Я думаю, что рефакторинг этого кода использует только один OpenHelper, и создание обеих таблиц внутри него onCreate может работать лучше...