2012-04-23 6 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

については、以下のリンクを参照して、データベースのコードを貼り付けてください。データベースからデータを取得するための

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

が、私は、データベースのそれの仕事を開いているデータベースのコードを開くには

+0

私は別のタブに行っているときにfinallyブロックでデータベースを終了します。 – user1350661

+0

私のコードを参照してください – user1350661

+0

私はあなたのコードを参照してください? –

0

正常ですが、10トランザクション以内に例外net.rim.device.api.database.DatabaseIOExceptionを返します:Fiシステムのリソースが不足している

+0

このコードはブラックベリーシミュレータで正常に動作しますが、実際のデバイスではnet.rim.device.api.database.DatabaseIOException例外が発生します:ファイルシステムのリソースが不足しています – user2656062

関連する問題