Android 数据库报错while compiling: PRAGMA journal_mode

Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//获取行业列表
     public  ArrayList GetIndustryList(){
         ArrayList IndustryList= new  ArrayList();
         SQLiteDatabase db=openDatabase();
         db.beginTransaction(); 
         Cursor cursor = db.rawQuery(  
                 "select * from dcIndustry" ,  
                 null );
         while (cursor.moveToNext()){
             IndustryList.add( new  Industry(cursor.getString( 0 ),cursor.getString( 1 )));
         }
         db.close();
         return  IndustryList;
     }


改正其实很简单,在db.close()前加db.endTransaction();就可以了
修正后:
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//获取行业列表
     public  ArrayList GetIndustryList(){
         ArrayList IndustryList= new  ArrayList();
         SQLiteDatabase db=openDatabase();
         db.beginTransaction(); 
         Cursor cursor = db.rawQuery(  
                 "select * from dcIndustry" ,  
                 null );
         while (cursor.moveToNext()){
             IndustryList.add( new  Industry(cursor.getString( 0 ),cursor.getString( 1 )));
         }
         db.endTransaction();
         db.close();
         
         return  IndustryList;
     }


解决方法是在国外的某论坛找到的  原因是4.0以前的版本db.close();会结束事务,而Jelly Bean 以后的版本因为安全性的问题,必须结束即endTransactiony以后才能再次访问本地数据库。

你可能感兴趣的:(数据库)