3

有没有人遇到过 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 : error code = 1, msg = no such table: newDb.mydata ..."

我可以通过发出以下语句从 sqlit3 中手动附加数据库:

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

任何解决此问题的帮助将不胜感激。

4

1 回答 1

2

在 Honeycomb 中,使用 bindargs 进行“附加”sql 语句似乎不起作用。

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

这应该有效。

于 2011-03-14T22:40:27.950 回答