【发布时间】:2010-02-05 23:43:01
【问题描述】:
是否可以为 sqlite 数据库文件选择自定义位置?
如果可能,我想将数据库文件存储在存储卡中。如果用户从一张存储卡切换到另一张,我希望我的应用程序使用卡上可用的任何版本的数据库文件。
【问题讨论】:
是否可以为 sqlite 数据库文件选择自定义位置?
如果可能,我想将数据库文件存储在存储卡中。如果用户从一张存储卡切换到另一张,我希望我的应用程序使用卡上可用的任何版本的数据库文件。
【问题讨论】:
默认情况下,您的数据库存储在 data/data/your_package/databases
您可以使用SQLiteDatabase openOrCreateDatabase 提供自定义数据库的路径作为您的第一个参数。
【讨论】:
SQLiteOpenHelper 创建数据库,然后将数据库文件复制到您的存储卡上。
您可以使用以下方式访问存储在 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 莱恩
【讨论】: