Где получить информацию об ошибке базы данных в Android SQLite (например, неудачная вставка из-за нарушения ненулевого значения) - PullRequest
18 голосов
/ 22 марта 2011

Я только что понял, что одна из моих команд вставки базы данных завершилась неудачно из-за нарушения ненулевого ограничения - я просто не заполнил данные в это поле.

Проблема в том, что мне понадобилось много времени, чтобы выяснить, почему эта вставка вернула -1, потому что я нигде не смог найти ошибку или исключение.

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

Ответы [ 2 ]

28 голосов
/ 23 марта 2011

Я обнаружил, что можно использовать insertOrThrow () вместо insert, по крайней мере, вы получите исключение, когда что-то пойдет не так, например, android.database.sqlite.SQLiteConstraintException: код ошибки 19: ограничение не выполнено - хотя я на самом деле хотел бы/ ожидаю, что будет еще яснее и скажет мне, в каком столбце есть ошибка или около того, но, возможно, я слишком требователен к особенностям SQLIte здесь.

5 голосов
/ 22 марта 2011

Вы смотрели в LogCat?Обычно это довольно многословно о том, что происходит, и о том, что идет не так.

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