2012-04-23 2 views
0

Я создал панель вкладок, которая появляется при первом входе в экран базы данных, этот код работает нормально. Но когда мы переходим на другую вкладку и снова перейти на вкладке экрана базы данных он вызывает исключениеnet.rim.device.api.database.DatabaseIOException: Ошибка файловой системы (12)

net.rim.device.api.database.DatabaseIOException: Ошибку файловой системы (12)

Я закрыл базу данных должным образом.

ответ

0

Эта ошибка возникает при попытке открыть базу данных, которая уже открыта.

На первой вкладке вы открыли соединение с базой данных, но при переключении другой вкладки, как вы закрываете соединение с базой данных.

Перед повторным открытием необходимо закрыть соединение с базой данных.

см следующую ссылку для получения более подробной информации

http://docs.blackberry.com/en/developers/deliverables/29299/Opening_and_closing_databases_1585333_11.jsp

Если вы все еще не в состоянии решить проблему, пожалуйста, вставьте код базы данных.

+0

Я закрываю базу данных в блоке finally, когда я перехожу на другую вкладку. – user1350661

+0

Pls см. Мой код – user1350661

+0

где я вижу ваш код? –

0

Чтобы открыть код базы данных

public void openDb(){ 
    try{ 
     closeDb(); 
     // Open the database   
      URI uri = URI.create("Go2Reward.sqlite");  
     Logger.debug("-----URI-----"+uri); 
     _db = DatabaseFactory.open(uri); 
    }catch(Exception e){ 
     Logger.error("--------- in open db====="+e.getMessage()+"----"+e); 
    } 
} 

// закрыть базу

public void closeDb(){ 
    try{ 
     if(_db != null) 
     { 
      Logger.debug("----close db---"); 
      _db.close(); 
      _db = null; 
     } 
    }catch(Exception e){ 
     Logger.error(" ---------in close db" , e); 
    } 
} 

код, чтобы получить данные из базы данных, как следовать

public Vector getCategoryVector() { 
    Vector categoryVec = new Vector(); 
    try{ 
     openDb(); 
     Statement statement = _db.createStatement("SELECT category FROM CategoriesTable"); 
     statement.prepare(); 
     Cursor cursor = statement.getCursor(); 

     Row row; 
     while(cursor.next()) { 
      row = cursor.getRow(); 
      categoryVec.addElement(row.getString(0)); 
     } 

     cursor.close(); 
     statement.close(); 
    }catch (Exception e) { 
     Logger.error("---error getCategoryVector---"+e.getMessage()); 
    }finally{ 
     closeDb(); 
    } 
    return categoryVec; 
} 

но когда я открыть базу данных она работает отлично, но в течение 10 транзакций он возвращает исключение net.rim.device.api.database.DatabaseIOException: Fi le system out of resources

+0

Этот код отлично работает в симуляторе BlackBerry, но на реальном устройстве он дает исключение net.rim.device.api.database.DatabaseIOException: файловая система из ресурсов – user2656062

Смежные вопросы