Используя пользовательский файл для Android sqlite база данных

Действительно ли возможно выбрать пользовательское местоположение для sqlite файла базы данных?

Если возможный я хочу хранить файл базы данных в карте памяти. И если пользователь переключается от одной карты памяти до другого, я хочу, чтобы мое приложение использовало безотносительно версии файла базы данных, доступного на карте.

9
задан Szere Dyeri 5 February 2010 в 23:43
поделиться

2 ответа

По умолчанию ваша база данных хранится в data/data/your_package/databases

Вы можете использовать SQLiteDatabase openOrCreateDatabase где в качестве первого аргумента вы можете указать путь к вашей пользовательской базе данных.

13
ответ дан 4 December 2019 в 10:04
поделиться

Вы можете получить доступ к базе данных, хранящейся на вашей sdcard, используя:

import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class MyClass {
    private SQLiteDatabase myDB = null;

    // Constructor
    public MyClass() {
        try {
            myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // Destructor
    public void finalize() {
        myDB.close();
    }
}

NO_LOCALIZED_COLLATORS = для открытия базы данных без поддержки локализованных коллекторов.

Для получения пути к вашей sdcard вы можете использовать:

stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite"

Rgds. Лейн

8
ответ дан 4 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: