В Android я могу сделать SQL-запрос на курсор? - PullRequest
6 голосов
/ 11 мая 2011

В моей базе данных может быть выбрано более одного фильтра, поэтому я хотел бы запросить в базе данных курсор, а затем выполнить запрос для этого курсора, чтобы вернуть другой.

Ответы [ 3 ]

5 голосов
/ 11 мая 2011

Вы не можете сделать запрос на курсоре. Курсор является результатом запроса. Это не источник запроса. Вам нужно выполнить новый запрос для того же места, где вы получили исходный курсор, с новыми аргументами, указывающими новый набор данных, который вы хотите.

3 голосов
/ 11 мая 2011

Вы должны использовать внутренний цикл для записи фильтра, это один из вариантов для вас

, для которого вы должны сначала получить запись в cursor1, а во внутреннем цикле вы можете использовать значение 1st Cursor и запросснова для cursor2

EDIT

1) Если вам нужны определенные столбцы, вы можете отфильтровать в методе db.query () , например,

Cursor curTaskList = db.query("tablename", new String[]{"col1", "col2"}, null, null, null, null, null);

2) Если вам нужна конкретная строка, вы можете отфильтровать в методе db.query () , например,

Cursor curTaskList = db.query("timebasedlist", null, "col1 = ? AND col2 = ?", new String[]{"val1", "val2"}, null, null, null);

, поэтому нет необходимости запрашивать болеекурсор

Вы можете фильтровать в одном запросе

Если у вашего курсора более одной строки, вы можете извлекать строку за строкой, используя цикл

1 голос
/ 11 мая 2011

Вы можете сохранить запрос в виде текста и использовать его для создания новых курсоров?

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