附属于Honeycomb的数据库

时间:2011-02-24 18:37:39

标签: android sqlite android-3.0-honeycomb

有没有人遇到Honeycomb的附加数据库问题了?我的应用程序使用附加数据库(使用1.5到2.3)使用语句:

...

String newDb = "/data/data/com.stuff.app/databases/mydata.db";

db.execSQL("attach database ? as newDb", new String[] {newDb});

String[] columns = MY_COL_NAMES;

String orderBy = DEFAULT_SORT_ORDER;

Cursor cursor = db.query("newDb.mydata", columns, null, null, null, null, orderBy);

...

无论sqlite数据库文件(本地或SD卡)的实际位置如何,这都有效(1.5到2.3)...但是,在Honeycomb中,db.query语句会生成“I / SqliteDatabaseCpp(628)” :sqlite返回:错误代码= 1,msg =没有这样的表:newDb.mydata ...“

我可以通过发出语句:

从sqlit3中手动附加数据库

sqlite3>将数据库'/data/data/com.stuff.app/databases/mydata.db'附加为newDb;

任何帮助解决这个问题都将非常感激。

1 个答案:

答案 0 :(得分:2)

在Honeycomb中,使用bindargs进行'attach'sql语句似乎不起作用。

试试这个:    db.execSQL(“attach database'”+ newDb +“'as newDb”);

这应该有效。