いらっしゃいませ。
このように更新されたデータベース:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
Log.e("TAG", "New database version exists for upgrade.");
try {
Log.e("TAG", "Copying database...");
copyDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
問題は、統計のデータベースにテーブルがあることです。このテーブルのデータを新しいデータベースにコピーするように注文したかったのです。
どうすればいいですか?例を求めてください。
よろしく、私の貧弱な英語をお詫び申し上げます。
私はこれをやろうとしました:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
Log.e("TAG", "New database version exists for upgrade.");
db.beginTransaction();
try {
Log.e("TAG", "Copying database...");
this.getReadableDatabase();
ArrayList<Statystyka> statystyki = getAllStatistic();
copyDataBase();
for (int i = 0; statystyki.size() >= i; i++) {
addStat(statystyki.get(i).getId_pytania(),
statystyki.get(i).getIlosc_rozwiazan(), statystyki
.get(i).getIlosc_poprawnych(), statystyki
.get(i).getIlosc_blednych());
}
db.setTransactionSuccessful();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.endTransaction();
}
}
しかし、エラーが発生します:
java.lang.IllegalStateException:getReadableDatabaseが再帰的に呼び出されました
データベースを開いてデータをロードするにはどうすればよいですか?