Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

if CurrentRecord.IsLocked(ByOtherUser) then...


Silver_ ©   (2003-06-03 12:15:00) 

СУБД Access
--- ADO ---

Как узнать ЗАРАНЕЕ (перед началом редактирования, после открытия, ...) что запись редактируется (или била изменена) другим пользователем.
Прмер:при ADODataSet.Postвылетает что НИНзя этого делать так как эту запись кто-то изменил, а как узнать об этом, чтоб не дать пользователю вААще торгать эту запись.


Sandman25   (2003-06-03 18:43:00) [1]

Тогда не знаю. Смените СУБД :)


Silver_   (2003-06-03 16:09:00) [2]


> 3. И наконец. Так ли важно знать о статусе записи заранее?
> Если не получилось, то значит с записью что-то стало и надо
> перечитать данные. Может, там кто-то вообще полтаблицы удалил?
> :)

...имеет место быть. :)

Но изза чего все это начиналось. Дело в том что редактируешь (и всего ОДИН юзер)запись, сохраняешь, тутже возвращаешся что-то поправить ...НИНзя..., изза значения вставляемые по умолчанию запись помечается как измененное другим пользователем(мной)

Вот вопрос и возникакт довольно-таки справедливо. Как узнать статус записи до того как его редактировать.
Например: Запись сотню-другую полей изменил потом получаешь что зря пол(!!!) часа мусолил клаву этой записи уже час(!!!) как кто-то другой изменил.


Sandman25   (2003-06-03 15:47:00) [3]

1. В Access есть возможности залокировать запись для последующего изменения?
2. Есть ли способ обойти журналирование изменений? Например, если изменяется a1=a1, то не записывать в журнал?
3. И наконец. Так ли важно знать о статусе записи заранее? Если не получилось, то значит с записью что-то стало и надо перечитать данные. Может, там кто-то вообще полтаблицы удалил? :)


Silver_   (2003-06-03 15:31:00) [4]


> Edit и сразу же Post


Так то оно так но в Post производятся некоторые действия над записью. В частности ведется запись кто её модифицировал (чтоб знать кому дать по рукам за содеяное :) )и если Post пройдет даже если юзверь просто ошибся (ничнго менять не хотел) типа нажал на Cancel в навигаторе все роврно он окажется крайним и виноватым во всех смертных грехах :о(.

Может еще идей есть. Так часто встречаются вопросы о появляющихся ошибках в этих случаях. Давайте найдем же лекарство от этой беды.


Sandman25   (2003-06-03 14:52:00) [5]

Если Access не дает изменять запись в случае изменения a1=a1 другим пользователем, то можно в BeforeEdit самому сделать то же самое, опередив конкурентов :)
В общем, делайте Edit и сразу же Post. Если Post не пройдет, значит, кто-то ее уже изменил. Если пройдет, то пользователь может изменять.
Правда, тут остается проблема - если компонент "умный", он проверит на Modified и проигнорирует Post. Я с ADO никогда не работал, не знаю. Надо пробовать.


Silver_   (2003-06-03 14:14:00) [6]


> bushmen © (03.06.03 13:54)
> Введи в таблицу дополнительное поле,...


В принципе так и делаю. Но хотел найти другой способ независящий от структуры таблици. При ADODataSet.Post;ведь находит что запись изменена. Почему бы не узнать еще перед редактированием. Типа как-то спрсить у самой базы мона или нет редактировать эту запись.


bushmen   (2003-06-03 13:54:00) [7]

Введи в таблицу дополнительное поле, которое будешь изменять следующим, например, образом:
при изйятии записи на редактирование ставь имя пользователя. BefoEdit проверяй, стоит там твоё имя или чужое.


Silver_   (2003-06-03 12:56:00) [8]


> 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

У меня ошибка будет что запись была изменена и что мене делать :о(


Sandman25   (2003-06-03 12:32:00) [9]

Проверить наличие записи в BeforeEdit?


Наверх

Титульная страница Поиск, карта сайта Написать письмо