Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.18;
Скачать: 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 вся ветка

Текущий архив: 2002.11.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
4-59487
Панк
2002-10-07 20:54
2002.11.18
Свой пункт в PopUp меню Windows


1-59121
The_Vizit0r!
2002-11-08 13:11
2002.11.18
А как вставить таблицу в RXRichEdit?


1-59135
Irix
2002-11-08 16:17
2002.11.18
Где можно достать TValueListEditor?


14-59406
ZZ
2002-10-31 09:46
2002.11.18
Требуются...


3-59000
cd1
2002-10-28 21:34
2002.11.18
Извините за вопрос, кто-нибудь работал с TreeView в БД?