在android中创建新数据库时调用setLocale的问题

时间:2011-03-23 12:07:25

标签: android sqlite locale

我第一次尝试了一些数据库访问代码而且我遇到了一些错误 感谢一些帮助。这就是发生的事情:

1)我正在通过调用此构造函数创建一个新的SQLiteOpenHelper实例:

public MyDbOpenHelper(Context context) {
    super(context, "some_name.db", null, 1); 
}

以上实例是myHelper下面使用的变量

2)我正在调用myHelper.getReadableDatabase()

3)此时Android调用我的onCreate方法。我实现这个方法 开头如下:

public void onCreate(SQLiteDatabase db) {
    db.setLocale(new Locale("en"));
    //...
}

4)上述通话未完成。我得到以下转储:

BEGIN TRANSACTION设置区域设置失败    无法打开some_name.db进行写入(将尝试只读):
   android.database.sqlite.SQLiteException:无法在事务中启动事务
       在android.database.sqlite.SQLiteDatabase.native_setLocale(原生方法)
       在android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1751)
       在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper ...
       在android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper ....

看起来好像因为我想在数据库尚不存在时获取可读数据库,所以Android 尝试创建它并为setLocale创建一个可写的数据库...这就是原因 它抱怨“交易内交易”? 应该怎么做?

谢谢,任何帮助将不胜感激

0 个答案:

没有答案