Вниз
Скачать: CL | DM;

DBF-файлы в многопользовательском режиме   Найти похожие ветки 

 
Kudatsky   (2002-10-28 13:38) [0]

Я запустил с двух машин приложение, пишущее в один и тот же DBF-файл. Сбоит только, если приложения пишут одновременно в одну и ту же строку. Если же они пишут в разные строки, то всё нормально. Для моей теперешней задачи этого достаточно. Но может быть, есть другие препятствия в использовании DBF-файлов в многопользовательском режиме ?


 
passm ©   (2002-10-28 13:45) [1]

Kudatsky (28.10.02 13:38)> Еще генерирование уникального ключа при одновременной вставке в одну таблицу.


 
kudatsky   (2002-10-28 14:01) [2]

Не понял, о чём идёт речь ?


 
passm ©   (2002-10-28 14:40) [3]

kudatsky (28.10.02 14:01)> Представь, что есть таблица:
TABLE1:
ID INTEGER NOT NULL
NAME CHARACTER(32)
И построин уникальный индекс по полю TABLE1.ID
Два пользователя одновременно пытаются добавить запись в эту таблицу. Первый знает, что максимальное значение TABLE1.ID = 10 и второй знает, что максимальное значение TABLE1.ID = 10. И оба пытаются вставить строку VALUES(11, "тра-ля-ля"); результат - нарушение (т. е. попытка) уникального индекса (первичного ключа).


 
Mike Kouzmine   (2002-10-28 14:56) [4]

Что значит сбоит? Какое исключение?


 
kudatsky   (2002-10-28 15:00) [5]

Речь идёт о DBF-файлах, там нет первичных ключей, а индексы моя программа не использует. Меня интересует, можно ли всё-таки использовать DBF-файлы в многопользовательском режиме ? Эксперименты, мною проведенные, говорят что можно, но может я что-то не учёл?


 
kudatsky   (2002-10-28 15:06) [6]

2 Mike Kouzmine
При попытке одновременного доступа к одной строке появляется сообщение:
Record locked by another user


 
Darts   (2002-10-28 16:13) [7]

Все правильно. Тот, кто первый захватил строку, тот и правит. Если второй пользователь попадет на эту запись, ему придется ждать, пока первый пользователь не внес изменения, или не вышел отсюда.

ИМХО, проще выкинуть сообщение, что подождите, запись временно заблокирована, другой юзер сидит на ней.


 
kudatsky   (2002-10-28 16:53) [8]

Так кто всё-таки знает, какие существуют препятствия к использованию DBF-файлов в многопользовательском режиме ? (кроме записи в одну строку ).


 
Darts   (2002-10-28 17:02) [9]

Никаких препятствий. Между прочим, описанный случай встречается для всех типов баз данных, так что поведение dBase-формата далеко не уникально. Юзай!


 
kudatsky   (2002-10-29 10:21) [10]

Нет ли желающих продолжить обсуждение темы ?
Может, кто-нибудь это уже использует ?


 
Shulc   (2002-10-30 19:14) [11]

Если таблица юзается в многопользовательском режиме, то при записи в таблицу необходимо, обязательно , заблокировать запись. А если этого не удаётся, выдать сообщение и сделать откат. Прочитай, что-нибудь про транзакции.


 
Anatoly Podgoretsky ©   (2002-10-30 20:25) [12]

kudatsky (28.10.02 15:00)
Ваши данные насчет первичных ключей сильно устарели



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-59238
Fog
2002-11-05 20:00
2002.11.18
Научите...


4-59470
PetroHobbit
2002-10-03 12:28
2002.11.18
Рабочий стол


3-58988
Irony
2002-10-28 16:58
2002.11.18
испорчен файл *.gdb хотя бы частично...


14-59418
Anatoly Podgoretsky
2002-10-29 08:50
2002.11.18
Именинники 29 октября


14-59339
Relict
2002-11-01 09:08
2002.11.18
крестики нолики




   Наверх