Я использую в своем приложении 2 базы данных. У меня есть основная база данных, которая используется больше всего и в какой-то момент мне нужна вторая база данных. Итак, для того, чтобы использовать его я прикрепил его к основной базе данных, используя этот метод:Android Detach Database
public void attachDb(String dbName, String dbAlias){
String dbPath = context.getDatabasePath(dbName).getAbsolutePath();
myDataBase.execSQL("attach database '" + dbPath + "' as " + dbAlias);
}
Теперь моя проблема заключается в том, что я хочу, чтобы отделить 2-ую базу данных, когда я выйти из экрана, и я получаю Force Close. Я попытался снять его, используя этот код:
public void detachDatabase(String dbName){
String dbPath = context.getDatabasePath(dbName).getAbsolutePath();
myDataBase.execSQL("detach database '" + dbPath + "'");
}
Журнал ошибок говорит это: *
05-13 11: 48: 23,173: ERROR/AndroidRuntime (7338): FATAL ИСКЛЮЧЕНИЕ: резьбовых 145 android.database.sqlite.SQLiteException: код ошибки 1: SQL логическая ошибка или отсутствует база данных в android.database.sqlite.SQLiteStatement.native_execute (Native Method) в android.database.sqlite.SQLiteStatement.executeUpdateDelete (SQLiteStatement.java : 92) в android.database.sqlite.SQLiteDatabase.executeSql (SQLiteDatabase.java:1899)на android.database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1839) в com.example.DBManagerBase.detachDatabase (DBManagerBase.java:168) в com.example.run (MyClass.java:233) на java.lang.Thread.run (Thread.java:856)
*
Я не знаю, что может быть проблема. Кто-нибудь может мне помочь? Я буду очень признателен.
Не прикрепляйте и не отсоединяйте базы данных, используйте один адаптер, который хранит несколько баз данных. См. Ответ здесь: http://stackoverflow.com/questions/4498664/android-multiple-databases-open –
И если я сделаю запрос, который объединяет таблицы из обеих баз данных, этот пример будет работать? По моему скромному мнению, я не думаю, что если он работает, если они не привязаны. – Laura
Соединения работают только в таблицах, которые находятся в одном контексте базы данных. Вы ни в коем случае не можете присоединиться к двум таблицам, которые находятся в отдельных базах данных с SQL. Вам нужно будет делать выборки из каждой из таблиц и выполнять объединение полученных результирующих данных в вашем коде. –