java.sql.SQLException: база данных заблокирована - PullRequest
10 голосов
/ 05 апреля 2010

Мы используем sqlite056.jar в нашем коде. При вставке в базу данных в пакетном режиме мы получаем исключение в режиме онлайн, когда мы собираемся сделать коммит.

Строки кода

<object of Connection>.commit();
<object of Connection>.setAutoCommit(true);

Exception

java.sql.SQLException: database locked

Ответы [ 4 ]

9 голосов
/ 07 мая 2012

Соединение должно быть закрыто после каждого запроса.Если какое-либо из соединений все еще сохраняется.Я получил ту же ошибку в настольных приложениях Java, теперь решена.

7 голосов
/ 05 апреля 2010

Чтение базы данных SQLite устанавливает состояние блокировки в Shared.Несколько считывателей могут быть активными одновременно.

При записи в базу данных SQLite устанавливается состояние блокировки «Исключительно».Никакие другие процессы не могут быть активными в это время.

Вы можете найти подробное объяснение на http://www.sqlite.org/lockingv3.html

2 голосов
/ 05 апреля 2010

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

0 голосов
/ 23 мая 2016

В моем случае я забыл добавить предложение WHERE в свой запрос UPDATE, и это выдает ошибку " database locked ".

Тщательно проверьте ваши запросы.

Редактировать: я забыл указать, что использовал тип запроса UPDATE, в котором я меняю несколько атрибутов:

ОБНОВЛЕНИЕ Пользователей УСТАНОВИТЬ вес = 160, желаемый вес = 145 ГДЕ id = 1;

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