Как проверить базу данных доступна или нет в Android? - PullRequest
0 голосов
/ 05 декабря 2011

В моем приложении для Android я вставляю и отображаю данные из базы данных SQLite.Перед этим я хочу проверить, доступна ли база данных или нет.То есть я хочу проверить, доступна ли таблица.Если он есть, я также хочу проверить, не пустой ли он.Вот псевдокод

if (DB available) {
    if (table available) {
        if (table != empty) {
            insertdata()
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Как правило, вам не нужно проверять наличие базы данных, если только поведение вашего кода не изменится в зависимости от того, является ли сама база данных новой. В вашем случае вы все равно захотите проверить содержимое таблицы, даже если база данных не новая. Если вы позвоните SQLiteDatabase.openDatabase() БЕЗ передачи CREATE_IF_NECESSARY, будет сгенерировано исключение. Обычно, однако, вы просто позвоните SQLiteDatabase.openOrCreateDatabase(). После этого вы проверите таблицу.

Вы можете проверить наличие таблицы с помощью оператора SELECT count(*) FROM sqlite_master WHERE name='<tablename>' AND type='table';

0 голосов
/ 05 декабря 2011

Обычно в Android нет необходимости явно проверять , доступна ли ваша база данных.Поток состоит в том, что вы пытаетесь получить экземпляр базы данных (в режиме чтения или записи), и, если база данных не существует, выполняется процедура onCreate () , которая должна выполнить инструкцию DDL и создать базу данных дляпервый раз.В своем выражении DDL вы можете использовать:

create table if not exists TABLE_NAME

, который гарантирует вам, что TABLE_NAME существует до того, как вы его запросите.

Вы можете использовать getWritableDatabase(), вызванный наSQLiteOpenHelper Объект.Он выдаст SQLiteException , если есть проблема с базой данных.

Для получения дополнительной информации ознакомьтесь с официальной документацией .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...