Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-59081
Наталья С.
2002-11-06 00:12
2002.11.18
Открытие фала


1-59229
Брат
2002-11-05 14:09
2002.11.18
Как проще всего скопировать директорию со всем её содержимым?


1-59188
AlexT1000
2002-11-09 15:48
2002.11.18
Как установить свою ширину выпадающего списка в ComboBox?


14-59376
Николай Быков
2002-10-27 19:10
2002.11.18
http://freeprogrammer.narod.ru


14-59350
Молоток
2002-10-29 10:56
2002.11.18
Проблема с принтерами. Править реестр НЕ помогает. Касперского НЕ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский