У меня есть эта функция, которая заполняет класс на основе данных из нескольких таблиц.Я получил первый курсор:
String query="SELECT * FROM SESSION where _id =" + mSessionID + ";";
Cursor c = dbAdapter.selectRecordsFromDB(query, null);
Session session=null;
c.moveToFirst();
Это прекрасно работает.Затем немного ниже я делаю это:
long galleryId = c.getInt(4);
long packageId = c.getInt(5);
long contractId = c.getInt(6);
String query2="SELECT * FROM PHOTOPACKAGES WHERE _id =" + packageId + ";";
Cursor p = dbAdapter.selectRecordsFromDB(query2, null);
и курсор p всегда возвращает -1 для своего количества.Я могу пойти прямо в sqlite в ADB и выполнить тот же запрос, где packageId = 1, и он отлично работает ... поэтому не уверен, почему это не работает, я не вижу других ошибок ... вы можете просто неиспользовать два курсора в одной базе данных?ps selectRecordsFromDB является вспомогательной функцией:
public Cursor selectRecordsFromDB(String query, String[] selectionArgs) {
Cursor c = myDataBase.rawQuery(query, selectionArgs);
return myDataBase.rawQuery(query, selectionArgs);
}