创建表格时遇到问题。发生了什么是以下,我有一个xml文件,这是我想要更改数据库版本时执行的查询。问题是它达到处理查询执行的高度但是没有采取数据库中的更改,奇怪的是在我的xml文件中有两个不同的查询,第一次运行但不是第二次,最差的是它没有指出任何银行错误,我的脚本是正确的,并返回所有查询但它发生,我不知道为什么。下面是我的函数,负责执行我的xml的查询:
private boolean execSqlByQuery(List<String[]> listaQuery, SQLiteDatabase db) {
Boolean result = false;
if(!listaQuery.isEmpty()){
try{
for(int i = 0; i < listaQuery.size(); i++){
for(int j = 0; j < listaQuery.get(i).length; j++){
db.beginTransaction();
Log.d("SQL", listaQuery.get(i)[j].toString());
db.execSQL(listaQuery.get(i)[j].toString());
db.setTransactionSuccessful();
db.endTransaction();
}
}
result = true;
}catch(Exception ex){
result = false;
}finally{
listaQuery.clear();
}
}
return result;
}
答案 0 :(得分:0)
更改您的代码,如:
private boolean execSqlByQuery(List<String[]> listaQuery, SQLiteDatabase db) {
Boolean result = false;
if(!listaQuery.isEmpty()){
db.beginTransaction();
try{
for(int i = 0; i < listaQuery.size(); i++){
for(int j = 0; j < listaQuery.get(i).length; j++){
Log.d("SQL", listaQuery.get(i)[j].toString());
db.execSQL(listaQuery.get(i)[j].toString());
}
}
db.setTransactionSuccessful();
result = true;
}catch(Exception ex){
result = false;
}finally{
if (db!= null) {
db.endTransaction();
}
listaQuery.clear();
}
}
return result;
}