Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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