Я использую базу данных SQLite для хранения и извлечения данных моего приложения, а также что проверять на наличие повторяющихся записей. I попытаться получить все записи, в которых совпадают заголовки, как таковые:
Cursor c = mDb.query(DatabaseHelper.GOALS_TABLE_NAME,
new String[] { Goals.GOAL_ID, Goals.TITLE },
Goals.TITLE + "='" + title + "'", null, null, null,
null, null);
где title - это тот, с которым нужно сравнивать.
Этот запрос выполняется, но курсор дает счетчик -1. Вызов без предложения where также возвращает -1, но я знаю, что данные присутствуют, так как я могу привязать к ним представление списка.
Что-то мне не хватает, нужно ли мне каким-то образом заполнить курсор?
Заранее спасибо,
] Венату
При выполнении query()
немедленно возвращается Курсор
. Сам запрос еще не запущен. Только когда вы делаете что-то, что требует загрузки данных, запрос будет выполнен. Попробуйте сначала выполнить другой метод (например, moveToFirst()
) перед вызовом getCount()
и посмотрите, изменит ли это ситуацию.