Использование пользовательского файла для базы данных Android sqlite - PullRequest
9 голосов
/ 06 февраля 2010

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

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

Ответы [ 2 ]

13 голосов
/ 06 февраля 2010

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

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

8 голосов
/ 06 февраля 2010

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

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 = открыть базу данных без поддержки локализаторов.

Чтобы получить путь к вашей SD-карте, вы можете использовать:

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

Rgds Лэйн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...