データベース画面に初めて入るときに表示されるタブバーを作成しました。このコードは正常に機能しています。しかし、別のタブに移動してから再びデータベース画面のタブに移動すると、例外がスローされます
net.rim.device.api.database.DatabaseIOException: ファイル システム エラー (12)
データベースを適切に閉じました。
データベース画面に初めて入るときに表示されるタブバーを作成しました。このコードは正常に機能しています。しかし、別のタブに移動してから再びデータベース画面のタブに移動すると、例外がスローされます
net.rim.device.api.database.DatabaseIOException: ファイル システム エラー (12)
データベースを適切に閉じました。
データベース コードを開くには
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: File system out of resources が返されます
このエラーは、既に開いているデータベースを開こうとすると発生します。
最初のタブでは、データベース接続を開きましたが、別のタブに切り替えると、データベース接続を閉じる方法がわかりました。
再度開く前に、データベース接続を閉じる必要があります。
詳細については、次のリンクを参照してください
それでも問題を解決できない場合は、データベース コードを貼り付けてください。