У меня очень раздражающая проблема с одним из моих приложений. Когда я выпускаю обновление с инкрементной версией приложения и базы данных.
При обновлении запускается, и старая база данных удаляется, и вводится новая. Ниже приведен код обновления при
db.execSQL("DROP TABLE IF EXISTS table");
db.execSQL("DROP TABLE IF EXISTS android_metadata");
try {
InputStream is = getAssets().open("sqlfile");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();
while(line != null){
db.execSQL(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
Сюда входит расширяемое меню, так как вы можете щелкнуть по стране, и в ней будут перечислены все строки в этой стране. Проблема в том, что в предыдущей версии это работало нормально. Но тогда при обновлении это не будет работать вообще, но любой другой запрос работает хорошо. Ниже приведен соответствующий запрос.
protected Cursor getChildrenCursor(Cursor groupCursor) {
String countryID = Integer.toString(groupCursor.getInt(groupCursor.getColumnIndex("_id")));
SQLiteDatabase checkDB = null;
checkDB = SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READONLY);
Cursor value = checkDB.rawQuery("SELECT * FROM countries WHERE open='1' AND country=?", new String[]{countryID});
//checkDB.close();
return value;
}