Вверх ↑
Ответов: 648
Рейтинг: 18
#1: 2015-06-14 16:13:51 ЛС | профиль | цитата
web-beer, SQLITE не СЕТЕВАЯ БАЗА, почитайте как она работает...в сетевой папке базу не рекомендуется располагать потому как начинают с ума сходить NTFS потоки.


Если вам нужна сетевая реализация SQLITE делайте клиент-серверное приложение: сервер принимает SQL запросы от клиентов выполняет их (в одном или разных потоках) и возвращает клиентам результат операции.

Если вам нужна многопоточность - опять же изучите документацию к SQLITE (https://www.sqlite.org/threadsafe.html), есть 3 вида потоков в sqlite:

1) один поток и одно подключение к базе.
2) каждый поток использует отдельное подключение к базе
3) каждый поток использует одно и тоже подключение к базе, но все запросы выполняются строго по очереди.

Под подключением к базе имеется в виду открытие базы, а не обращение к хендлу уже открой базы...
------------ Дoбавленo в 16.13:
web-beer писал(а):
В чем дело понять не могу. Когда переписываешь программу с файлами *.db на диск C: или D: все нормально работает.


Потому что SQLITE при каждом запросе производит блокировку таблицбазыбуфера на уровне ОС, угадайте что происходит с БД на сетевом диске когда "все подряд" читаютпишут? Блокировка нормально не срабатывает.
карма: 0

0