我在我的应用程序2中使用数据库.我有一个主要数据库,使用最多,在某些时候我需要第二个数据库.因此,为了使用它,我使用此方法将其附加到主数据库:
public void attachDb(String dbName, String dbAlias){ String dbPath = context.getDatabasePath(dbName).getAbsolutePath(); myDataBase.execSQL("attach database '" + dbPath + "' as " + dbAlias); }
现在我的问题是,当我退出屏幕并且得到强制关闭时,我想要分离第二个数据库.我试图使用此代码分离它:
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):致命异常:Thread-145 android.database.sqlite.SQLiteException:错误代码1:android.database.sqlite.SQLiteStatement.native_execute中的SQL逻辑错误或缺少数据库(本地方法)位于android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1899)android.d.ds上,android.database.sqlite.SQLiteState.脚点数据库中的android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92)(SQLite数据库.java:1839)com.example.DBManagerBase.detachDatabase(DBManagerBase.java:168)at com.example.run(MyClass.java:233)at java.lang.Thread.run(Thread.java:856)
*
我不知道问题是什么.有谁能够帮我?我会很感激.
仅使用myDataBase.execSQL("detach"+ dbAlias)
您不使用数据库的路径+名称,只使用您提供的别名.