有没有人遇到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;
任何帮助解决这个问题都将非常感激。
答案 0 :(得分:2)
在Honeycomb中,使用bindargs进行'attach'sql语句似乎不起作用。
试试这个: db.execSQL(“attach database'”+ newDb +“'as newDb”);
这应该有效。