运行查询后不会创建表

时间:2014-02-17 12:32:50

标签: java android database sqlite

创建表格时遇到问题。发生了什么是以下,我有一个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;
}

1 个答案:

答案 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;
}