![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBF-файлы в многопользовательском режиме
Kudatsky © (2002-10-28 13:38:00)Я запустил с двух машин приложение, пишущее в один и тот же DBF-файл. Сбоит только, если приложения пишут одновременно в одну и ту же строку. Если же они пишут в разные строки, то всё нормально. Для моей теперешней задачи этого достаточно. Но может быть, есть другие препятствия в использовании DBF-файлов в многопользовательском режиме ?
Anatoly Podgoretsky (2002-10-30 20:25:00) [1]kudatsky (28.10.02 15:00)
Ваши данные насчет первичных ключей сильно устарели
Shulc (2002-10-30 19:14:00) [2]Если таблица юзается в многопользовательском режиме, то при записи в таблицу необходимо, обязательно , заблокировать запись. А если этого не удаётся, выдать сообщение и сделать откат. Прочитай, что-нибудь про транзакции.
kudatsky (2002-10-29 10:21:00) [3]Нет ли желающих продолжить обсуждение темы ?
Может, кто-нибудь это уже использует ?
Darts (2002-10-28 17:02:00) [4]Никаких препятствий. Между прочим, описанный случай встречается для всех типов баз данных, так что поведение dBase-формата далеко не уникально. Юзай!
kudatsky (2002-10-28 16:53:00) [5]Так кто всё-таки знает, какие существуют препятствия к использованию DBF-файлов в многопользовательском режиме ? (кроме записи в одну строку ).
Darts (2002-10-28 16:13:00) [6]Все правильно. Тот, кто первый захватил строку, тот и правит. Если второй пользователь попадет на эту запись, ему придется ждать, пока первый пользователь не внес изменения, или не вышел отсюда.
ИМХО, проще выкинуть сообщение, что подождите, запись временно заблокирована, другой юзер сидит на ней.
kudatsky (2002-10-28 15:06:00) [7]2 Mike Kouzmine
При попытке одновременного доступа к одной строке появляется сообщение:
Record locked by another user
kudatsky (2002-10-28 15:00:00) [8]Речь идёт о DBF-файлах, там нет первичных ключей, а индексы моя программа не использует. Меня интересует, можно ли всё-таки использовать DBF-файлы в многопользовательском режиме ? Эксперименты, мною проведенные, говорят что можно, но может я что-то не учёл?
Mike Kouzmine (2002-10-28 14:56:00) [9]Что значит сбоит? Какое исключение?
passm (2002-10-28 14:40:00) [10]kudatsky (28.10.02 14:01)> Представь, что есть таблица:
TABLE1:
ID INTEGER NOT NULL
NAME CHARACTER(32)
И построин уникальный индекс по полю TABLE1.ID
Два пользователя одновременно пытаются добавить запись в эту таблицу. Первый знает, что максимальное значение TABLE1.ID = 10 и второй знает, что максимальное значение TABLE1.ID = 10. И оба пытаются вставить строку VALUES(11, "тра-ля-ля"); результат - нарушение (т. е. попытка) уникального индекса (первичного ключа).
kudatsky (2002-10-28 14:01:00) [11]Не понял, о чём идёт речь ?
passm (2002-10-28 13:45:00) [12]Kudatsky (28.10.02 13:38)> Еще генерирование уникального ключа при одновременной вставке в одну таблицу.