Cursor.getCount () отрицательный (= -1) - PullRequest
0 голосов
/ 07 ноября 2010

Я пытался загрузить список значений из таблицы, но курсор возвращает длину -1?

Есть ли возможность просмотра базы данных sqlite на эмуляторе Android?

Код с ошибкой:

final Cursor c = db.query(
    ACCESS_TOKEN_TABLE,
    new String[] { ACCESS_TOKEN_COL_ID, ACCESS_TOKEN_COL_VALUE },
    ACCESS_TOKEN_COL_SERVER_ID + "=" + serverId,
    null,
    null,
    null,
    null);

public static final String COL_ID = "_id";
public static final String ACCESS_TOKEN_TABLE = "accesstoken";
public static final String ACCESS_TOKEN_COL_ID = COL_ID;
public static final String ACCESS_TOKEN_COL_SERVER_ID = "server_id";
public static final String ACCESS_TOKEN_COL_VALUE = "value";

И есть одна запись в базе данных. Значение ServerID равно 1, и существует одна запись, где ServerID равен 1.

С уважением xZise

PS: только два вопроса, чтобы открыть базу данных.

Ответы [ 4 ]

3 голосов
/ 07 ноября 2010

у вас есть команда sqlite3, если вы "adb -e shell" с интерфейсом CLI для БД.еще лучше - я знаю плагин eclipse, который может просматривать содержимое базы данных sqlite с помощью ddms.но мой личный фаворит - вытащить файл db из эмулятора и использовать браузер базы данных sqlite для просмотра содержимого.

2 голосов
/ 07 ноября 2010

getCount () = -1 -> нечего считать ... (вы уверены, что ваш запрос в порядке?)

Не знаю, как просматривать sqlite db с помощью эмулятора Android, но вы можете использовать такие приложения, как Root Explorer, для просмотра баз данных.

0 голосов
/ 07 ноября 2010

Аааа .... Я был на две строки выше: Поэтому проблема не в том, что курсор возвращает отрицательную длину, а в том, что он не может дать мне индексы столбцов.

Мне очень жаль. Из-за совершенно другого вопроса я разместил новый вопрос: Курсор не находит столбцы?

С уважением xZise

0 голосов
/ 07 ноября 2010

Если курсор равен -1, оператор SQL не возвращает никаких результатов.Возможно, если бы вы добавили код, который вы используете для своего оператора выбора SQL.

Что касается второго, просмотр БД - да, это возможно:

  1. ВEclipse, представление DDMS, щелкните по имени эмулятора на вкладке «Устройства» (если вкладка «Устройства» не отображается: «Окно» -> «Показать представление» -> «Устройства»)

  2. Затем нажмите на вкладку «Проводник» (Если вкладка не отображается: «Окно» -> «Показать представление» -> «Проводник»)

  3. Теперь просмотритедерево файлов.Вам нужно перейти по адресу: data / data / com.package.name / database

  4. Теперь нажмите на имя базы данных, которую вы хотите проверить.Вам нужно будет скопировать его на свой компьютер. (Для этого щелкните изображение дискеты со стрелкой на нем. Сохраните его там, где сможете найти.)

  5. Вам потребуется браузер SQLite, например, SQLite Manager для Firefox

  6. В Firefox откройте SQLite Manager (Инструменты-> SQLite Manager)

  7. В SQLite Manager щелкните База данных, Подключите базу данных (Возможно, вам придется изменить тип файла с Файлы БД SQLite (.sqlite;) на Все файлы , так как в базе данных Android необязательно иметь расширение .sqlite для файла)

Другой вариант - использовать браузер Questeod SQLite Questiod. Плагин для Eclipse - я только что добавил это - делает процесс выше в два раза проще!

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