Форум: "Базы";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c