Я пытаюсь запустить обновление SQL, и оно возвращает ошибки.Для жизни я не могу понять, что происходит не так.Ошибка первой попытки с базой данных не может быть открыта ошибка, которая не имеет смысла, так как вторая попытка открывается нормально:
SQLiteDatabase db = null;
try{
db = SQLiteDatabase.openDatabase(dbnametmp, null, SQLiteDatabase.OPEN_READWRITE);
for (int x = 0; x < ids.length; x++) {
ContentValues values = new ContentValues();
values.put("color", colors[x]);
db.update("ColorTable", values, "id=?", new String[] {Integer.toString(ids[x])});
}
}catch(SQLiteException e){
Log.e("nowsciColor", e.getMessage(), e);
}catch(Exception e){
Log.e("nowsciColor", e.getMessage(), e);
}
if (db != null)
db.close();
Вторая попытка приведена ниже.Это не выдает ошибку, однако фактические обновления не происходят.Если я сделаю запрос к таблице сразу после (как без, так и с повторным открытием БД), значения будут такими же, какими они были до обновления.Я также пробовал это без начала и фиксации, а также как отдельные вызовы SQL.
SQLiteDatabase db = null;
try{
db = SQLiteDatabase.openDatabase(dbnametmp, null, SQLiteDatabase.OPEN_READWRITE);
String sql = "begin transaction;";
for (int x = 0; x < ids.length; x++) {
sql += "update ColorTable set color=" + Integer.toString(colors[x]) + " where id=" + Integer.toString(ids[x]) + ";";
}
sql += "commit;";
db.execSQL(sql);
}catch(SQLiteException e){
Log.e("nowsciColor", e.getMessage(), e);
}catch(Exception e){
Log.e("nowsciColor", e.getMessage(), e);
}
if (db != null)
db.close();
Выполнение этих же запросов в БД на компьютере работает нормально.База данных также не используется любым другим приложением.Любая помощь будет оценена.