Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Внизif CurrentRecord.IsLocked(ByOtherUser) then... Найти похожие ветки
← →
Silver_ (2003-06-03 12:15) [0]СУБД Access
--- ADO ---
Как узнать ЗАРАНЕЕ (перед началом редактирования, после открытия, ...) что запись редактируется (или била изменена) другим пользователем.
Прмер: приADODataSet.Post
вылетает что НИНзя этого делать так как эту запись кто-то изменил, а как узнать об этом, чтоб не дать пользователю вААще торгать эту запись.
← →
Sandman25 (2003-06-03 12:32) [1]Проверить наличие записи в BeforeEdit?
← →
Silver_ (2003-06-03 12:56) [2]
> Sandman25 © (03.06.03 12:32)
> Проверить наличие записи в BeforeEdit?
Так и предполагается проверять в BeforeEdit но проверять "наличие" чего, запись имеется.
А юзверь мог проделать и такое
Fld_1, Fld_2, ..., Fld_N
a1 1 1- изменил a1=a1
a2 2 2
Fld_1, Fld_2, ..., Fld_N
a1 1 1
a2 2 2
У меня ошибка будет что запись была изменена и что мене делать :о(
← →
bushmen (2003-06-03 13:54) [3]Введи в таблицу дополнительное поле, которое будешь изменять следующим, например, образом:
при изйятии записи на редактирование ставь имя пользователя. BefoEdit проверяй, стоит там твоё имя или чужое.
← →
Silver_ (2003-06-03 14:14) [4]
> bushmen © (03.06.03 13:54)
> Введи в таблицу дополнительное поле,...
В принципе так и делаю. Но хотел найти другой способ независящий от структуры таблици. ПриADODataSet.Post;
ведь находит что запись изменена. Почему бы не узнать еще перед редактированием. Типа как-то спрсить у самой базы мона или нет редактировать эту запись.
← →
Sandman25 (2003-06-03 14:52) [5]Если Access не дает изменять запись в случае изменения a1=a1 другим пользователем, то можно в BeforeEdit самому сделать то же самое, опередив конкурентов :)
В общем, делайте Edit и сразу же Post. Если Post не пройдет, значит, кто-то ее уже изменил. Если пройдет, то пользователь может изменять.
Правда, тут остается проблема - если компонент "умный", он проверит на Modified и проигнорирует Post. Я с ADO никогда не работал, не знаю. Надо пробовать.
← →
Silver_ (2003-06-03 15:31) [6]
> Edit и сразу же Post
Так то оно так но в Post производятся некоторые действия над записью. В частности ведется запись кто её модифицировал (чтоб знать кому дать по рукам за содеяное :) )и если Post пройдет даже если юзверь просто ошибся (ничнго менять не хотел) типа нажал на Cancel в навигаторе все роврно он окажется крайним и виноватым во всех смертных грехах :о(.
Может еще идей есть. Так часто встречаются вопросы о появляющихся ошибках в этих случаях. Давайте найдем же лекарство от этой беды.
← →
Sandman25 (2003-06-03 15:47) [7]1. В Access есть возможности залокировать запись для последующего изменения?
2. Есть ли способ обойти журналирование изменений? Например, если изменяется a1=a1, то не записывать в журнал?
3. И наконец. Так ли важно знать о статусе записи заранее? Если не получилось, то значит с записью что-то стало и надо перечитать данные. Может, там кто-то вообще полтаблицы удалил? :)
← →
Silver_ (2003-06-03 16:09) [8]
> 3. И наконец. Так ли важно знать о статусе записи заранее?
> Если не получилось, то значит с записью что-то стало и надо
> перечитать данные. Может, там кто-то вообще полтаблицы удалил?
> :)
...имеет место быть. :)
Но изза чего все это начиналось. Дело в том что редактируешь (и всего ОДИН юзер)запись, сохраняешь, тутже возвращаешся что-то поправить ...НИНзя..., изза значения вставляемые по умолчанию запись помечается как измененное другим пользователем(мной)
Вот вопрос и возникакт довольно-таки справедливо. Как узнать статус записи до того как его редактировать.
Например: Запись сотню-другую полей изменил потом получаешь что зря пол(!!!) часа мусолил клаву этой записи уже час(!!!) как кто-то другой изменил.
← →
Sandman25 (2003-06-03 18:43) [9]Тогда не знаю. Смените СУБД :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.028 c