我正在寫一個android應用程序,它可以同時處理一些SQLite數據庫。 此應用程序可與由Mobile Atlas Creator創建的離線地圖數據庫一起使用。我有另一個數據庫,它包含有關這些映射的一些元數據(map_meta_db.sqlitedb)。 所有這些數據庫都存儲在外部SD卡中。Android SQLite寫入錯誤
所有地圖數據庫文件都已預先填充,因此我使用SQLiteDatabase.OPEN_READONLY標誌打開它們。
但是map_meta_db不是隻讀的,所以我用SQLiteDatabase.OPEN_READWRITE標誌打開它。
我已授予我的應用程序讀取和寫入在AndroidManifest.xml外置SD:
使用許可權的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());
}
任何想法?
有什麼理由不使用'insert'方法? – Yogu
您能否顯示SQL插入語句「insertSql」?是否有可能是SQL語句本身導致錯誤?可能是由於SQL命令中的語法錯誤造成的。 –
如果你用'sqlite3'打開你的SD卡上的'adb shell'並打開這個db-file,你能在這種情況下成功執行插入操作嗎?另外,在'sqlite3'中,在你的元數據數據庫上執行'pragma integrity_check'。 – Jens