SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLiteReadOnlyDatabaseException:mencoba menulis database hanya-baca (kode 1032)

Saya terjebak dengan masalah yang kurang lebih sama persis dan saya menemukan cacat terbuka pada masalah yang masuk akal...

https://code.google.com/p/android/issues/detail?id=174566

Solusi saya - meskipun bukan solusi terbaik - adalah tidak pernah melangkah revisi database dan melacak ini sendiri, sehingga tidak pernah memanggil onUpgrade() , dan lakukan peningkatan versi secara manual saat memperbarui aplikasi.

Atau jika Anda memiliki DB kecil yang hanya dapat dibaca, Anda dapat memicu salinan db dalam aset di setiap onCreate() di DBHelper class, tetapi ini mungkin memberikan masalah yang tidak diinginkan jika sistem file penuh, jadi lakukan saja ini sambil mencari solusi yang lebih baik.

@Override
public void onCreate(SQLiteDatabase db) {
    // Workaround for Issue 174566
    myContext.deleteDatabase(DB_NAME);
    try {
        copyDataBase();
    }
    catch(IOException e) {
        System.out.println("IOException " + e.getLocalizedMessage());
    }
}

Aplikasi saya sekarang ditingkatkan sebagaimana mestinya dengan solusi saya dan dengan menilai berapa lama sejak cacat ini muncul awalnya, itu mungkin tidak akan pernah diperbaiki sama sekali...

Maaf ini bukan solusi lengkap untuk masalah ini, tapi setidaknya ini adalah cara untuk maju.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus baris tertentu di Database SQLite

  2. Cara Menambahkan Bulan ke Tanggal di SQLite

  3. Data diisi dari tanggal tabel tertentu alih-alih semua tabel di sqlite

  4. Bagaimana SQLite Ltrim() Bekerja

  5. Bagaimana menghindari penggunaan + dalam nomor versi dengan SQLiteAssetHelper