[FireDAC][Phys][SQLite] Error: database is locked

Farid Belyalov
Дата: 17.07.2019 19:22:36
Помогите решить проблему, уже неделю сражаюсь. Перевожу базу пациентов с Access на SQLite и никак не могу побороть '[FireDAC][Phys][SQLite] Error: database is locked' при попытке изменить данные.
Пробовал:
1. LockingMode:=Normal, Synchronous=Normal, Isolation=xiSnapshot.
2. Отключал антивирус.
3. Протестировал базу, обновил индексы в редакторе SQLite Expert. В редакторе все правится.
4. Менял режим отладки с Debug на Release, запускал в другом каталоге вне IDE, из простой тестовой формы.
5. В Connection Editor запрос SQL выполняет, данные меняются без ошибок.
6. На пустой базе данные можно добавить/изменить, но после нескольких записей все опять блокируется.
Кроик Семён
Дата: 17.07.2019 19:59:00
ОФФ

на первой работе делали программу, которая данные хранила в БД MS Access. Изначально делалась как однопользовательская. Потом оказалось, что расшаренная по сети (= лежащая на файл-сервере) база тоже работает, даже в многопользовательском режиме 2-3 человека.

Шефу было важно, особенно на стадии рассылки дисков с ознакомительной версией, чтобы демоверсия могла работать с CD, не требуя инсталляции драйверов. MS JET на крайняк, но больше ни-ни. По-этому был и взят MS Access.

Но потом, когда продукт был готов, оказалось, что ему не выйти в большое плаванье без настоящей многопользовательности. И мы не успели перевести его на MS SQL Server за приемлимые сроки. И всё накрылось.

Позже, когда я познакомился с БД Firebird, я очень пожалел, что мы не узнали о ней раньше. Ведь его "embedded" режим позволил бы избавиться от инсталляции драйверов и сервера, но если бы кто-нибудь захотел настоящую многопользовательность, просто перевели бы базу в серверный режим. Без переписывания софта.
Кроик Семён
Дата: 17.07.2019 20:01:46
Сорри, не хотел отвлекать от сугубо-технической темы топика. Просто вспомнилось ...
Farid Belyalov
Дата: 17.07.2019 20:15:51
Стратегически Вы правы и скорее всего продукт будет развиваться по этому пути. Пока сделан просмотрщик базы SQLite на FireMonkey, программирования при переводе БД, которая формируется на рабочем месте врача, немного. Небольшие проблемы решатся.
Farid Belyalov
Дата: 18.07.2019 04:19:13
Проблема оказалась в Auto-create forms, которые при старте программы имели связь с FDConnection. Перевел в Available forms и все заработало.