2

私は自分のアプリケーションで 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 + "'");
}

エラーログには次のように書かれています:

05-13 11:48:23.173: ERROR/AndroidRuntime(7338): FATAL EXCEPTION: Thread-145
        android.database.sqlite.SQLiteException: error code 1: SQL logic error or missing database
        at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
        at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92)
        at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1899)
        at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1839)
        at com.example.DBManagerBase.detachDatabase(DBManagerBase.java:168)
        at com.example.run(MyClass.java:233)
        at java.lang.Thread.run(Thread.java:856)

何が問題なのかわかりません。

4

1 に答える 1