Курсор SQLite случайно не возвращает результатов - в чем может быть причина? - PullRequest
1 голос
/ 06 мая 2011

Я пытаюсь отследить ошибку, которую я вижу, возвращаясь из удаленных аварийных загрузок с моих клиентов, когда в моей SQLLiteDatabase нет данных, когда предыдущие запросы работали нормально, и данные явно присутствовали.Например, в этом коде здесь предположим, что есть одна таблица Profiles, которая содержит одну строку профиля:

Profile p = null;
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(ProfileDbKeys.PROFILES_TABLE_NAME);
builder.setProjectionMap(ProfileDbKeys.ColumnMap);
Cursor cursor = builder.query(db, ProfileDbKeys.ProfileFields, null, null, null, null, null, null);
if (cursor.moveToNext()) {
  p = Profile.fromCursor(cursor);
}

cursor.close();

Обычно p имеет значение, но в некоторых случаях он остается нулевым и вызывает сбойлиния.Сам сбой является преднамеренным, потому что, если мое клиентское хранилище данных не работает, я бы предпочел завершить работу против потенциально поврежденного состояния в дальнейшем.

В моих журналах я знаю, что нет никаких исключений SQLLite;как будто база данных пуста.

Может кто-нибудь предложить какое-либо понимание того, почему cursor.moveToNext () может возвращать данные не так часто?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...