Delphi SQLite3 с использованием ZeosLib, как поделиться базой данных? - PullRequest
1 голос
/ 15 июля 2011

Я использую Delphi 7 и ZeosLib 6.6.6 для доступа к базе данных SQLite3.

Как лучше использовать общую базу данных.

Я планирую поместить файл базы данных (data.db3) в общую папку.

А приложение Delphi есть на локальном настольном компьютере каждого пользователя.

Я хочу знать, например, как управлять блокировкой базы данных. Обнаружение блокировки базы данных определенным пользователем, и тому подобное.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 июля 2011

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

Но если под "в общем расположении" вы подразумеваете сетевой диск, то естьВаш вопрос предполагает, что он, вероятно, не будет работать должным образом.

Блокировка файлов по сети небезопасна (по крайней мере, в мире Windows).См. http://www.sqlite.org/cvstrac/wiki?p=SqliteNetwork

Вместо этого следует полагаться на настоящий подход клиент / сервер, который по-прежнему возможен при использовании SQLite3 на сервере и при доступе клиентов к нему через сеть.См., Например, наш RESTful сервер с использованием JSON и нескольких протоколов.

0 голосов
/ 16 июля 2011
  1. Вы можете разместить базу данных SQLite на общем сетевом ресурсе. Согласно документации SQLite - это не рекомендуется. Основная причина - SQLite не может эффективно управлять блокировкой на общем ресурсе.
  2. Если вам нужен многопользовательский доступ к базе данных SQLite, то вы можете рассмотреть возможность использования промежуточного программного обеспечения, такого как DataAbstract. В качестве драйвера для Data Abstract вы можете использовать нашу библиотеку AnyDAC. Некоторые статьи: Использование SQLite с AnyDAC и Использование реферата данных с AnyDAC . В первой статье отметьте «Подключение к базе данных SQLite из приложения Delphi», чтобы узнать о случаях использования, в том числе о настройке одновременного доступа.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...