내 응용 프로그램에서 2 개의 데이터베이스를 사용합니다. 나는 가장 많이 사용되는 메인 데이터베이스를 가지고 있으며 어느 시점에서 제 2 데이터베이스가 필요합니다. 그래서, 그것을 사용하기 위해 나는이 방법을 사용하여 기본 데이터베이스에 연결 : 안드로이드 데이터베이스 분리
public void attachDb(String dbName, String dbAlias){
String dbPath = context.getDatabasePath(dbName).getAbsolutePath();
myDataBase.execSQL("attach database '" + dbPath + "' as " + dbAlias);
}
지금 내 문제는 내가 화면을 종료하고 난 강제 닫기를 얻을 때 2 데이터베이스를 분리 할 것입니다.
이
public void detachDatabase(String dbName){
String dbPath = context.getDatabasePath(dbName).getAbsolutePath();
myDataBase.execSQL("detach database '" + dbPath + "'");
}
오류 로그이 말한다 : *
11월 5일에서 13일까지 : 48 : 나는이 코드를 사용하여 분리하려고 23.173 : ERROR/AndroidRuntime (7338) : 치명적인 예외 : 스레드 - 145 android.database.sqlite.SQLiteException : 오류 코드 1 : SQL 논리 오류 또는 누락 된 데이터베이스 android.database.sqlite.SQLiteStatement.native_execute (기본 메서드) android.database.sqlite.SQLiteStatement.executeUpdateDelete (SQLiteStatement.java : 92) android.database.sqlite.SQLiteDatabase.executeSql (SQLiteDatabase.java:1899) 01 com.example.run에서 com.example.DBManagerBase.detachDatabase (DBManagerBase.java:168) 에서 android.database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1839) (MyClass.java:233) 에서 23,516,에서 java.lang.Thread.run (Thread.java:856)
*
나는 문제가 될 수 모르겠어요. 아무도 나를 도울 수 있습니까? 나는 매우 감사하게 될 것입니다.
데이터베이스를 연결하거나 분리하지 마십시오. 여러 데이터베이스를 유지하는 하나의 어댑터를 사용하십시오. 여기에 답변을 참조하십시오 : http://stackoverflow.com/questions/4498664/android-multiple-databases-open –
그리고 두 데이터베이스에서 테이블을 조인하는 쿼리를 만들면 그 예제가 작동합니까? 나의 겸허 한 의견에서 나는 그들이 붙어 있지 않은 경우에 그것이 작동하는지 생각하지 않는다. – Laura
조인은 동일한 데이터베이스 컨텍스트에있는 테이블에서만 작동합니다. 어떤 경우에도 SQL을 사용하여 별도의 데이터베이스에있는 두 개의 테이블을 조인 할 수는 없습니다. 각 테이블에서 선택을 수행하고 코드에서 결과 데이터에 대한 조인을 수행해야합니다. –