我试图打开从意图传递的数据库, 当我尝试打开数据库时,它将返回数据库路径而不是数据库自身,因此当我尝试执行SQLite命令时,它将无法工作
URI uri = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM);
SQLiteDatabase oldDB = SQLiteDatabase.openDatabase(uri.getPath(), null, 1);
database.selectTable(oldDB)
//select table from old DB
selectTable(SQLiteDatabase oldDB){
database.execSQL("SELECT * FROM " +
oldDB +
".table1"
}
会导致错误: SELECT * FROM SQLiteDatabase:/mnt/sdcard/path/to/database.db.table1 我需要获取实际的数据库" SELECT * FROM nameOfDatabase.table1"
答案 0 :(得分:1)
当我尝试打开数据库时,它将返回数据库路径而不是数据库自我
不,它没有。 toString()
上的SQLiteDatabase
会返回路径。您在查询中toString()
上连接了SQLiteDatabase
,原因不明。如果您要对oldDB
执行查询,请致电query()
上的rawQuery()
或oldDB
,而不是database
。
答案 1 :(得分:1)
您使用openDatabase
打开的数据库的名称始终为main
。
只有在实际将数据库附加到另一个数据库时,即在数据库上执行ATTACH statement时,才能获得不同的数据库名称。