Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Внизблокировка записей Найти похожие ветки
← →
Alexsandr (2004-07-01 10:14) [0]Добрй день.
У меня совсем маленький вопрос к Вам, коллеги.
Пишу маленькую сетевую задачку. Будет 2, максимум 3 пользователя. Использую BDE и машину помощней в виде сервера (win 2000) , на которой будут храниться базы, а доступ просто через расшариную папку. в BDE прописываю доступ к машине типа: \\172.16.3.75\Rach\dbf\izob
Базы dBase, а также использую Query, т.е. делаю выборку из баз и соответствующие изменения через SQL.
Вопрос в следующем, как узнать, что какае-то определенная запись редактируется, что бы нельзя было удалять ее другим пользователем ?? Или таким способом это не осуществить, нужено что то типа IB ??
← →
Курдль © (2004-07-01 10:15) [1]нужено что то типа клиент сервер
← →
Соловьев © (2004-07-01 10:18) [2]
> нужено что то типа IB ??
http:\\ibase.ru
← →
Anatoly Podgoretsky © (2004-07-01 10:18) [3]Это делается автоматически
← →
Alexsandr (2004-07-01 10:39) [4]В том то и дело, что автоматически не делается.
Если на одной машине запись редактируется, то с другой она спокойно удаляется, а если на первой сохранить изменения, то она просто исчезает после обновления информации
Пытался мучать компанент TDataBase -- никчему не привело
Или может нудно где нить птичку поставить, про которую я не в курсе ???
← →
ЮЮ © (2004-07-02 03:41) [5]А зачем, спрашивается, на первой машине редактируют запись, которая должна быть удалена.
А зачем на второй машине удаляют запись, которая нужна?
З.Ы. Бардак не автоматизируешь :-)
← →
Alexsandr (2004-07-02 09:52) [6]В том то и дело, что не бордак. Первый пользовватель решил отредактировать запись и занимется этим, а второй решил, что она не нужна и удалил :-)
Сенкс всем, я думал что обойдусь без клиент-сервер, но :-(
← →
Соловьев © (2004-07-02 09:53) [7]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=570
← →
Shama_n © (2004-07-04 12:13) [8]Что если завести еще одно поле в которое заносить информацию о редактировании записи в данный момент?
← →
GanibalLector © (2004-07-04 12:17) [9]http://www.ibase.ru/devinfo/plocks.htm
← →
KSergey © (2004-07-04 15:20) [10]> [6] Alexsandr (02.07.04 09:52)
> В том то и дело, что не бордак.
Нет, именно бардак.
Что это за такая запись, которую кто-то редактирует, а второй -вообще решит, что не нужна? Так может ее и вводить тогда не стоит?
Разберитесь для начала в ваших бизнес процессах.
Люди! Вопрос ко всем: вот сразу про какой-то клиент-сервер начинают говорить. Но кто-то мне может объяснить: чем это может помочь в данной ситуации?? Только блокировками? Ну дык и в dbf можно блокировать. как вариант - см. [8] Shama_n © (04.07.04 12:13), хотя лучше так не делать никогда (уборщица кабель вырвала или комп завис - и никто эту запись никогда уже не разблокирует; но это уже отдельный разговор).
Так чем-же тут клиент-сервер поможет? Что за мания такая все (даже однопользовательские вещи) на нем творить?? Я что-то не понимаю?
← →
Shama_n © (2004-07-04 16:17) [11]> уборщица кабель вырвала или комп завис - и никто эту запись никогда уже не разблокирует; но это уже отдельный разговор
Эту проблему можно решить парой лишних строк кода но то что подход не самый правильный не спорю...
← →
KSergey © (2004-07-04 20:05) [12]> Shama_n © (04.07.04 16:17) [11]
> > уборщица кабель вырвала или комп завис - и никто эту запись
> никогда уже не разблокирует; но это уже отдельный разговор
> Эту проблему можно решить парой лишних строк кода но то
> что подход не самый правильный не спорю...
Ню-ню ;)
Каких же? Да еще парой?
В общем случае, по-моему, не так просто выяснить (если вообще возможно на 100%) завис комп/задача или пользователь задумался (а то и вовсе чай пьет; а кому-то удалить приспичило, т.к. налоговая на подходе: и как тут быть? так что только наводить порядок)
← →
Anatoly Podgoretsky © (2004-07-04 20:20) [13]Какая тогда разница, ну удалит он туже записи несколькими микросекундами позже.
← →
Курдль © (2004-07-05 09:19) [14]
> Так чем-же тут клиент-сервер поможет? Что за мания такая
> все (даже однопользовательские вещи) на нем творить?? Я
> что-то не понимаю?
Если в условии вопроса написано: "Будет 2, максимум 3 пользователя...", то это, согласитесь, уже не один пользователь.
А писать даже для 2-х пользователей, как для одного - это уже волюнтаризЬм!
И еще. Приведите мне пример проги, которую вы писали под одного пользователя, но ее нельзя представить, как многопользовательскую?
← →
Jiny (2004-07-05 09:37) [15]Я столкнулся с этим и нашел 2 решения :
1) (для BDE) нужно в редактируемой таблице добавить поле isBusy (logical or boolean) и перед открытием карточки на изменение ставить в True, при этом : либо по таймеру обновлять ентот датасет, что существенно будет жрать сетевой траффик, если данных много, либо обновлять перед тем как пользователь попытается изменить, удалить запись. После окончания работы isBusy ставиться в False;
2) (для IB) попробуй делать это на уровне транзакций : либо проверяй Trans.InTransaction(Boolean), опции транзакции должны быть Read commited, то есть читаются только подтвержденные другими пользователями транзакции.
← →
Виталий (Украина) (2004-07-06 13:42) [16]В добрые старые времена, (когда компьютерыбыли бальшие, а программы маленькие) я в DBASE создавал поле, в котором писался пользователь, занявший (например накладную). Когда пользователь оставлял документ, понятное дело он писал туда "ничего". При страрте и финише метки снимались автоматически (на всякий случай) При старте "СЕРВЕРА" ,тогда их ещё не было, тоже снимались все метки. Работоло очень устойчиво много лет.
← →
bushmen © (2004-07-06 13:53) [17]>При старте "СЕРВЕРА" ,тогда их ещё не было, тоже снимались все метки. Работоло очень устойчиво много лет.
Например, у нас сервера уже несколько месяцев работают безостановочно. Это не выход
← →
Виталий (Украина) (2004-07-06 14:06) [18]Для bushmen Так этож сервера .... "Те Сервера" работалли на XT. Сейчас мало кто знает что это такое.
← →
Виталий (Украина) (2004-07-06 14:06) [19]Удалено модератором
← →
bodtaib (2004-07-08 12:23) [20]Я мож чего не понял?
В BDE Configuration Drivers->Native->Paradox ставим NetDir,
там примерно, где будет программа(не база!)
В System->INIT LocalShare в True
И БДя сама будет следить за блокировками и за юзерами.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c