SQLite
 sql >> база данни >  >> RDS >> SQLite

Не може да се отвори база данни в режим на четене/запис

Въпросът ви не е толкова ясен, но ще се опитам да отговоря.

Най-вероятно вашата база данни:

  1. Все още не съществува и трябва да го създадете;
  2. Файлът ви с база данни е само за четене, трябва да го промените (този въпрос може да е свързан).

За #2, вместо да използвате SQLiteOpenHelper#getReadableDatabase() , използвайте SQLiteOpenHelper#getWritableDatabase

Ако вашата база данни е на външно устройство за съхранение, трябва да проверите още няколко неща:

  1. Монтирано ли е външното хранилище в момента? Ако не, няма да имате достъп до db.
  2. Монтирано ли е само за четене? Ако е така, ще трябва да промените това.
  3. Проверихте ли пътя? Правилно ли е?

Проблемът може да е във всяка от тези теми.

За да проверите дали е монтиран като само за четене, опитайте следното:

/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
        Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}

Взето от тук.

За повече информация относно Environment клас, моля, вижте документите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи SQLite Min().

  2. Android:Как да импортирам контакт от телефона?

  3. SQLite - Има ли разлика между ограничение на таблица UNIQUE и ограничение на колона UNIQUE?

  4. Изтриване на SQLite

  5. Запазване на данни в метода onDestroy на дейността