Ошибка записи Android SQLite - PullRequest
0 голосов
/ 17 января 2012

Я пишу приложение для Android, которое одновременно работает с некоторыми базами данных SQLite. Это приложение работает с базами данных автономных карт, созданными Mobile Atlas Creator. У меня есть другая база данных, которая содержит некоторые метаданные об этих картах (map_meta_db.sqlitedb). Все эти базы данных хранятся на внешней SD-карте.

Все файлы базы данных карты предварительно заполнены, поэтому я открываю их с флагом SQLiteDatabase.OPEN_READONLY.

Но map_meta_db не только для чтения, поэтому я открываю его с флагом SQLiteDatabase.OPEN_READWRITE.

Я предоставил свое приложение для чтения и записи внешних sd в AndroidManifest.xml:

использует разрешение android: name = "android.permission.WRITE_EXTERNAL_STORAGE"

Проблема в том, что я могу открыть все базы данных и прочитать их данные, но когда я хочу вставить новую запись в map_meta_db, просто ничего не происходит! Не исключение, без вставки!

try {
    SQLiteDatabase map_meta_db = SQLiteDatabase.openDatabase(pathToMapMetadataDirectory + MAP_METADATA_DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE);

    metaDb.rawQuery(insertSql, null);
} catch (Exception e) {
    Log.d(DEBUG_TAG, "While inserting new record, an error occured:" + e.getMessage());
}

Есть идеи?

1 Ответ

0 голосов
/ 17 января 2012

Может быть, вам стоит подумать о создании чего-то вроде SQLiteOpenHelper и создании вашей базы данных, например:

private SQLiteDatabase database = helper.getWritableDatabase();

где хелпер - упомянутая реализация SQLiteOpenHelper

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