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

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

Можно ли сделать чтобы пр удалении запись не удалялась а просто.. [D5, D6, IB6.x, Firebird]


Sirus ©   (2004-08-06 12:13:00) 

Привет Мастера...
Есть вопрос: Можно ли сделать так, чтобы при удалении запись не удалялась а просто помечалась как удаленная (изменялось только значение одного поля, скажем IS_DELETED=1)


stud   (2004-08-06 14:14:00) [1]

отбери у них права на удаление из нужной таблицы


Andrey_   (2004-08-06 14:06:00) [2]

Да я сам не понял :)


Rule   (2004-08-06 14:03:00) [3]

Andrey   (06.08.04 12:59) [13]
И я чегото не понял


Johnmen   (2004-08-06 13:05:00) [4]

>Andrey   (06.08.04 12:59) [13]

Ты о чём ?


Andrey   (2004-08-06 12:59:00) [5]

Необходимо создать RULE перед удалением с параметром замены исходного SQL запроса на удаление (параметр похоже называется instead=true)


Rule   (2004-08-06 12:55:00) [6]

Sirus   (06.08.04 12:49) [10]
тогда батенька вам надо логирование сделать или на тех же тригерах, тоесть заноситься в отдельную таблицу все изменения или же такаяже ерунда только автоматизированая есть в эксперте, так что я думаю это будет лучше ...


Sergey13   (2004-08-06 12:52:00) [7]

2[10] Sirus   (06.08.04 12:49)
Ха-ха-ха. Так ты в одно прекрасное утро там и тригера то можешь не увидеть. Не то что записи.


Sirus   (2004-08-06 12:49:00) [8]

Нет это для пользователей... Они научились удалять записи в таблице через IBExpert (нажимают там "-")...
А я хочу знать что он там удалил (чтобы потом спросить зачем???)...


Rule   (2004-08-06 12:40:00) [9]

Sirus   (06.08.04 12:33) [7]
я имел ввиду носу :), лучше сделать как посоветовал
Johnmen ©   (06.08.04 12:19) [3]


Sirus   (2004-08-06 12:35:00) [10]

Rule ©   (06.08.04 12:31) [5], [6]
А в целом спасибо... Именно то что нужно...


Sirus   (2004-08-06 12:33:00) [11]

Объясните пожалуйста что такое "НОМУ"... И почему в нем нужно ковыряться через "Ж..." :)))


Rule   (2004-08-06 12:31:00) [12]

Rule ©   (06.08.04 12:30) [5]
извеняюсь поправка:
CREATE TRIGGER TABLE1_AD0 FOR TABLE1
ACTIVE AFTER DELETE POSITION 0
AS
begin
insert into TABLE1 (ID,FIELD1,FIELD2,FIELD3,IS_DELETED)
values  (old.ID,old.FIELD1,old.FIELD2,old.FIELD3,'1');
end


Rule   (2004-08-06 12:30:00) [13]

Sirus   (06.08.04 12:22) [4]
перекрыть стандартный запрос ты не сможешь единственный вариант - это создать тригер после удаления в котором вставишь только удаленную запись только значению поля из_делете присвоишь 1
ну вроде такого

CREATE TRIGGER TABLE1_AD0 FOR TABLE1
ACTIVE AFTER DELETE POSITION 0
AS
begin
insert into TABLE(ID,FIELD1,FIELD2,FIELD3,IS_DELETED)
values  (old.ID,old.FIELD1,old.FIELD2,old.FIELD3,'1');
end
вот и все, только это называется ковырятся в ному через ж...


Sirus   (2004-08-06 12:22:00) [14]

А что нить наподобие тригера нелзья сделать... before delete или after delete??? :-(((


Johnmen   (2004-08-06 12:19:00) [15]

Хотеть не вредно. Обойдёшься...:)))
Вместо делете делай апдейт. И не морочь себе голову...


Sirus   (2004-08-06 12:17:00) [16]

Нееее... Хочу чтобы при выполнении SQL
delete from TABLE1
where FIELD1=1

выполнялся SQL
update TABLE1
set IS_DELETE=1
where FIELD=1 and IS_DELETED=0


Johnmen   (2004-08-06 12:15:00) [17]

Можно. Изменяй значение одного поля, скажем IS_DELETED=1
:)


Наверх

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