execSQL()
с проверкой ошибок:
SQLiteDatabase db = getReadableDatabase();
try {
long count = DatabaseUtils.queryNumEntries(db, "pweb");
db.execSQL("update pweb set h_id = _id;");
long rows = DatabaseUtils.longForQuery(db, "SELECT changes()", null);
if(count != rows ) Log.e("wrong count","update failed");
}
catch(SQLException e){
Log.e("SQLException","update failed");
}
db.close();
но мне было интересно, возможно ли использовать функцию update () базы данных вместо execSQL ()
Вы можете использовать sqlite3
для просмотра и управления вашими данными, а также для проверки sql
команд.
Создать таблицу:
CREATE TABLE pweb (_id INTEGER PRIMARY KEY,h_id INTEGER ,sent INTEGER);
См.исходные строки:
sqlite> select * from pweb;
1|10|1
2|20|1
3|30|0
4|40|0
выполнить обновление столбца:
sqlite> update pweb set h_id = _id;
Просмотреть изменения во всех строках:
sqlite> select * from pweb;
1|1|1
2|2|1
3|3|0
4|4|0
Что-то более сложное?
sqlite> update pweb set h_id = _id + 1;
результат:
sqlite> select * from pweb;
1|2|1
2|3|1
3|4|0
4|5|0
См. Также Общие сведения о базе данных SQLITE в Android :