Попытайтесь повторно открыть уже закрытый объект: sqlitequeryAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Попытайтесь повторно открыть уже закрытый объект: sqlitequery

Сообщение Anonymous »

По сути, я запрашиваю БД дважды. Я не понимаю, откуда на самом деле эта ошибка, потому что я нигде не закрываю БД. Код, возвращающий ошибку, работает следующим образом. Я проверил и только что увидел случай, похожий на мой.

BeaconHandler pullAllDB = new BeaconHandler(this);
try {
List beaconsShown = pullAllDB.getAllBeacons();
for (final Beacon bn : beaconsShown) {
try {
int messageCount = pullAllDB.getMessageCount();
Log.d("Message", messageCount + " Messages Found");
if (messageCount > 0) {
//Do Something
} else {
// Do Nothing
}
}
catch (Exception e) {
e.getStackTrace();
Log.e("Message", e.getMessage());
}
}
}


И код, выполняющий запросы...

public int getBeaconsCount() {

String countQuery = "SELECT * FROM " + TABLE_BASIC_BEACON;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();

// return count
return cursor.getCount();

}

public int getMessageCount() {

String mcountQuery = "SELECT * FROM " + MESSAGE_BEACON;
SQLiteDatabase mdb = this.getReadableDatabase();
Cursor mcursor = mdb.rawQuery(mcountQuery, null);
mcursor.close();

// return count
return mcursor.getCount();

}


Подробнее здесь: https://stackoverflow.com/questions/189 ... qlitequery
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»