当前位置:  开发笔记 > 数据库 > 正文

Android Detach数据库

如何解决《AndroidDetach数据库》经验,为你挑选了1个好方法。

我在我的应用程序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)

*

我不知道问题是什么.有谁能够帮我?我会很感激.



1> Andre Rocha..:

仅使用myDataBase.execSQL("detach"+ dbAlias)
您不使用数据库的路径+名称,只使用您提供的别名.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有