SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Nie można otworzyć bazy danych w trybie odczytu/zapisu

Twoje pytanie nie jest takie jasne, ale postaram się odpowiedzieć.

Najprawdopodobniej Twoja baza danych:

  1. Jeszcze nie istnieje i musisz go stworzyć;
  2. Twój plik bazy danych jest tylko do odczytu, musisz go zmienić (to pytanie może być powiązane).

Dla #2, zamiast używać SQLiteOpenHelper#getReadableDatabase() , użyj SQLiteOpenHelper#getWritableDatabase

Jeśli Twoja baza danych znajduje się na zewnętrznej jednostce pamięci, musisz sprawdzić kilka innych rzeczy:

  1. Czy pamięć zewnętrzna jest obecnie podłączona? Jeśli nie, nie masz dostępu do bazy.
  2. Czy jest zamontowany tylko do odczytu? Jeśli tak, musisz to zmienić.
  3. Czy sprawdziłeś ścieżkę? Czy to prawda?

Problem może dotyczyć dowolnego z tych tematów.

Aby sprawdzić, czy jest zamontowany w trybie tylko do odczytu, spróbuj wykonać następujące czynności:

/* 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;
}

Zaczerpnięte stąd.

Więcej informacji na temat Environment klasę, zapoznaj się z dokumentacją.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PowerManager.PARTIAL_WAKE_LOCK android

  2. SQLite - Importuj dane z pliku CSV

  3. Jak zaktualizować istniejące dane za pomocą SQLite

  4. Sklonuj bazę danych SQLite

  5. SQLite ISTNIEJE