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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
7-84793
Alex000
2003-04-15 08:52
2003.06.26
Считывание серийного номера


6-84509
FZ*XupypG
2003-04-20 08:53
2003.06.26
Доступ к папке с паролем


3-84000
adoman
2003-05-30 14:03
2003.06.26
Syntax error in FROM clause...


1-84162
ArtemB
2003-06-11 14:44
2003.06.26
Prewiev


1-84130
Far
2003-06-09 19:47
2003.06.26
SetFocus