| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > SQLite и The database file is locked. |
| Автор: Zlo 2.5.2013, 22:02 |
| Для начала опишу ситуацию: Имеется программа (моя) которая загружается под каждым пользователем (допустим на терминальном сервере, для каждого пользователя запускается своя копия приложения) и постоянно собирает некую инфу. На том же терминальном сервере крутится сервис опять же мой. Программа получая инфу отправляет ее сервису. Сервис получив информацию запихивает ее в БД (SQLite). Через некоторое время сервис забирает инфу из БД запихивает ее в xml и отправляет скрипту на сайте для дальнейшей обработки. Как было до этого: Каждая копия программы подключалась к БД и писала в нее инфу. Сервис через некоторое время забирал инфу, запихивал ее в xml и... Но было слишком много ошибок типа "The database file is locked." поэтому немного погуглив прочитал что SQLite не позволяет писать в БД одновременно из разных потоков-следовательно запись в БД возложил на сервис. НО ошибка "The database file is locked." попрежнему появляется хоть и не так часто. гуглив наткнулся на несколько статей на хабре: _http://habrahabr.ru/post/149635/ _http://habrahabr.ru/post/149356/ где вроде говорится что писать одновременно в БД все таки можно, но как это реализовать? и если так сделать нельзя то нужно наверное делать менеджер записи в БД, если кто-то уже делал, то может поделится кодом, а то городить велосипед не очень хочется... |
| Автор: DYUMON 6.5.2013, 09:45 |
| на сколько помню . та dll что по умолчанию скачивается на сайте sqlite.org не поддерживает многопоточный доступ. собери себе dll с необходимыми параметрами. |