1
我在我的应用程序中使用SQLite。
数据库工作正常。
我可以插入,选择和更新行,但在这种情况下,事务不会被提交。未提交SQLite事务
public int updateTransaction(String oldstatus, String newstatus) {
int result;
try {
mDB.beginTransaction();
ContentValues values = new ContentValues();
values.put("trx_status", newstatus);
result = mDB.update("transaktion", values, "trx_status = ?", new String[] { oldstatus });
Log.d("DB", "updateTransaction:number of updated rows:" + result);
mDB.setTransactionSuccessful();
} catch (SQLiteException e) {
Log.d("TAGAB", "Error:" + e.getLocalizedMessage());
result = -1;
} finally {
mDB.endTransaction();
}
Log.d("TAGAB", "in Transaction? " + mDB.inTransaction());
return result;
}
在logcat的:
"TAGAB" in Transaction? true
的更新最初预制的,如果我选择了行,我收到了新的状态行。
在应用程序关闭并重新启动后,这些行再次具有旧的状态!
交易是否回滚?如果是这样,为什么? 数据库被定义为单例。
private SQLiteDatabase mDB;
private static DatabaseAdapter INSTANCE;
感谢您的快速回答!我没有任何其他交易开始。这是单笔交易。 – slawek
然后外面的交易是由别的东西开始 - 你在哪里调用方法? – laalto
此方法是从任何活动称为保存按钮之后被点击: DatabaseAdapter DA = DatabaseAdapter.getInstance(NULL,dummyPassword “); INT结果= da.updateTransaction(” U”, “T”); // 的行已成功更新 – slawek