Saya bekerja dengan database sederhana. Ini memiliki tiga kolom. _id (peningkatan otomatis kunci utama bilangan bulat), nomor pekerjaan (teks unik bukan nol) dan bagian pekerjaan (teks bukan nol).
Semuanya berfungsi dengan baik sampai saya mencoba memperbarui catatan dan memasukkan nomor pekerjaan yang ada. Ketika saya melakukan itu, aplikasi mogok dan saya terpaksa menutupnya.
Saya menggunakan updateWithOnConflict dan saya pikir itu menyebabkan semuanya keluar dengan baik dan mengembalikan kode. Tidak yakin apakah saya hanya tidak mengerti atau apakah saya telah melakukan sesuatu yang salah...
Bantuan apa pun dihargai.
perbarui cuplikan kode:
public int updateJob(long rowId, String jobnumber, String jobpart) {
ContentValues args = new ContentValues();
args.put(JOB_NUMBER, jobnumber);
args.put(JOB_PART, jobpart);
return mDb.updateWithOnConflict(JOB_TABLE, args, JOB_ROWID + "=" + rowId, null, SQLiteDatabase.CONFLICT_ROLLBACK);
}
keluaran dari LogCat:
FATAL EXCEPTION: main
android.database.sqlite.SQLiteException: cannot commit - no transaction is active
at android.database.sqlite.SQLiteStatement.native_executeSql(Native Method)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:89)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1933)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1864)
at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:688)
at android.database.sqlite.SQLiteStatement.releaseAndUnlock(SQLiteStatement.java:266)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:96)
at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1829)
at cdc.gridtest.ScheduleDBAdapter.updateJob(ScheduleDBAdapter.java:325)
at cdc.gridtest.JobEdit.saveState(JobEdit.java:104)
at cdc.gridtest.JobEdit.access$0(JobEdit.java:90)
at cdc.gridtest.JobEdit$1.onClick(JobEdit.java:47)
at android.view.View.performClick(View.java:3110)
at android.view.View$PerformClick.run(View.java:11934)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)