Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Блокировка записи   Найти похожие ветки 

 
Slider007 ©   (2004-10-13 09:26) [0]

Здравствуйте друзья !
Помогите пожалуйста разобраться со следующим вопросом :
Пишу программу, база в MSAccess. Клиенты цепляются к базе по сети.
Возникла необходимость блокирования записей, чтоб 2 человека не могли одну и ту же запись одновременно редактировать.
В интернете нарыл интересный способ - создать в таблице поле специальное (например BLOCK), в котором хранятся нолики. Когда человек начинает работать с записью (начинает её редактировать) в поле BLOCK записывается ЕДИНИЦА, после окончания редактирования в это поле пишется опять НОЛЬ. Соответственно человек не может начать редактировать запись если в поле BLOCK записана ЕДИНИЦА.
Но здесь возникает вопрос - если во время редактирования записи (когда в поле BLOCK находится ЕДИНИЦА) например нажать RESET (или просто компьютер повиснет) - нолик в поле BLOCK уже не запишется, и запись окажется заблокированной "НАВСЕГДА". Т.е. запись эту придется разблокировать в ручную.

Может кто-нибудь уже сталкивался с такой ситуацией ? Как можно решить эту проблему ?


 
sniknik ©   (2004-10-13 11:17) [1]

не блокировать, работать с данными в локальном рекордсете, скидывать после окончания обработки максимально быстро. (т.к. у аксеса практически в любом случае блокируется таблица, даже если проставить плокировку позаписьно, т.к. есть оговорка "на усмотрение движка" ;о), как ему покажется лучше)


 
Slider007 ©   (2004-10-13 11:33) [2]

а если всётаки блокировать ? нет способа бороться с неразблокировкой строк при аварийном завершении программы ?


 
sniknik ©   (2004-10-13 11:39) [3]

ставь не еденичку а время (тип пля дататайм) ожидаемой блокировки (+ 1мин к примеру), и проверяй не на нолик на на меньше этому времени, по прошествии получается автоматическая разблокировка а по записи устанавливай прошедшее время.


 
Nikolay M. ©   (2004-10-13 11:56) [4]


> т.к. у аксеса практически в любом случае блокируется таблица

Можно узнать, где про это написано? Или это личные наблюдения?
Я лично пока пребывал в убеждении, что в 97-м аксесе блокируется страница, а в 2000-м - запись.


 
sniknik ©   (2004-10-13 12:07) [5]

> Можно узнать, где про это написано? Или это личные наблюдения?
в разных источниках, и личные наблюдения тоже.
на sql.ru одно время бурно обсуждалось (попытаюсь счас поискать), и статьи там тоже вроде есть.
тесты там приводимые я повторял, все сходится. ;(


 
sniknik ©   (2004-10-13 12:25) [6]

именно той, не нашол ;(
поищи сам по слову "блокировка", там много интересного. но обший смысл по теме такой, что бы ты не сам ставил, если движку показалось выгоднее заблокировать таблицу, он так и сделает независимо от установок. и закладыватся на то что будут бллокированы только записи нельзя.


 
Slider007 ©   (2004-10-13 12:26) [7]


> ставь не еденичку а время

! Классная идея, спасибо, сейчас буду пробовать ..


 
Nikolay M. ©   (2004-10-13 12:54) [8]


> sniknik ©   (13.10.04 12:07) [5]

Черт возьми :(
Темы такой на склру не видел, щас посмотрю. А я-то надеялся, что в 2000-м что-то кардинально поменялось, досадно :(



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

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

Наверх




Память: 0.49 MB
Время: 0.053 c
14-1098615951
JaVa73
2004-10-24 15:05
2004.11.14
Вопрос всей моей жизни: как в России можно зарабатывать деньги на


1-1098988791
Victor
2004-10-28 22:39
2004.11.14
Подскажите: Как в ячейке StringList а не обрезался текст


14-1098535455
kaZaNoVa
2004-10-23 16:44
2004.11.14
Процесс, Dll и учётные записи пользователей ...


3-1097504958
Megabyte
2004-10-11 18:29
2004.11.14
Опции индекса в Paradox


3-1097573274
Санёк
2004-10-12 13:27
2004.11.14
MSSQL и SQLTimeStamp