Прикрепленные базы данных в сотах - PullRequest
3 голосов
/ 24 февраля 2011

Кто-нибудь еще сталкивался с проблемами с базами данных в 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);

...

Это работает (от 1,5 до 2,3) независимо от фактического расположения файла базы данных sqlite (локального или SD-карты) ... Однако в Honeycomb оператор db.query приводит к «I / SqliteDatabaseCpp (628) : sqlite вернул: код ошибки = 1, msg = нет такой таблицы: newDb.mydata ... "

Я могу вручную присоединить базу данных из sqlit3, выполнив инструкцию:

sqlite3> присоединить базу данных '/data/data/com.stuff.app/databases/mydata.db' как newDb;

Любая помощь в решении этой проблемы будет принята с благодарностью.

1 Ответ

2 голосов
/ 15 марта 2011

в Honeycomb, использование bindargs для оператора SQL 'Attach', похоже, не работает.

Попробуйте вместо этого: db.execSQL ("attach database" "+ newDb +" 'as newDb ");

это должно работать.

...