sql >> データベース >  >> RDS >> SQLite

読み取り/書き込みモードでデータベースを開くことができません

    あなたの質問はそれほど明確ではありませんが、私は答えようとします。

    ほとんどの場合、データベースは次のいずれかです。

    1. まだ存在していないので、作成する必要があります;
    2. データベースファイルは読み取り専用です。変更する必要があります(この質問は関連している可能性があります)。

    #2の場合、SQLiteOpenHelper#getReadableDatabase()を使用する代わりに 、SQLiteOpenHelper#getWritableDatabaseを使用します

    データベースが外部ストレージユニット上にある場合は、他に確認すべきことがいくつかあります。

    1. 外部ストレージは現在マウントされていますか?そうでない場合、データベースにアクセスできません。
    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. MariaDBでのCAST()のしくみ

    2. PostgreSQLデータベースのディスク容量が不足しています

    3. エラー:PLS-00428:このselectステートメントでinto句が必要です

    4. MySQLデータ-ページングを実装する最良の方法は?