Вниз
Скачать: CL | DM;

Можно ли сделать чтобы пр удалении запись не удалялась а просто..   Найти похожие ветки 

← →
Sirus   (2004-08-06 12:13) [0]

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


← →
Johnmen ©   (2004-08-06 12:15) [1]

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


← →
Sirus   (2004-08-06 12:17) [2]

Нееее... Хочу чтобы при выполнении 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:19) [3]

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


← →
Sirus   (2004-08-06 12:22) [4]

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


← →
Rule ©   (2004-08-06 12:30) [5]

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
вот и все, только это называется ковырятся в ному через ж...


← →
Rule ©   (2004-08-06 12:31) [6]

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


← →
Sirus   (2004-08-06 12:33) [7]

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


← →
Sirus   (2004-08-06 12:35) [8]

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


← →
Rule ©   (2004-08-06 12:40) [9]

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


← →
Sirus   (2004-08-06 12:49) [10]

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


← →
Sergey13 ©   (2004-08-06 12:52) [11]

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


← →
Rule ©   (2004-08-06 12:55) [12]

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


← →
Andrey   (2004-08-06 12:59) [13]

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


← →
Johnmen ©   (2004-08-06 13:05) [14]

>Andrey   (06.08.04 12:59) [13]

Ты о чём ?


← →
Rule ©   (2004-08-06 14:03) [15]

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


← →
Andrey_   (2004-08-06 14:06) [16]

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


← →
stud   (2004-08-06 14:14) [17]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.021 c
1-1092333533
tgeorge
2004-08-12 21:58
2004.08.29
Перехват печати из Windows-приложений


3-1091612672
veb
2004-08-04 13:44
2004.08.29
Ошибка: Size of optimizer block exceeded


4-1089985779
Анатолий
2004-07-16 17:49
2004.08.29
Закрыть хендл, принадлежащий чужому просессу.


14-1092300019
SSSSS
2004-08-12 12:40
2004.08.29
Люди! Где взять лицензионную 5-ю Дельфу?


3-1091690480
Trofimov
2004-08-05 11:21
2004.08.29
SQL




   Наверх