0
私のアプリケーションのうちの1つで非常に迷惑な問題があります。アプリケーションとデータベースのインクリメントされたバージョンでアップデートをリリースするとき。 Updateでエキスパンドリストビューで厄介なSQLiteクエリの問題
発射され、古いデータベースが削除され、新しいが持ち込まれている。以下は、国をクリックすると、それができて拡張可能なメニューは、このに入ってくる
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;
}
それらをダンプします。私がしたいのは、古いものを削除し、新しいものをインポートすることだけです。確かにこれはあなたの提案と同じですが、テンポラリテーブルを削除する – Somk
テーブルをドロップしています –