|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Мужики, че-та не соображу, подмогните, плз. Есть табля Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Нужно при попытке удаления в зависимости от условия Condition либо грохнуть запись, либо пометить "виртуальное" удаление и оставить ее живой. Пытался в триггере BD, Код: sql 1. 2. 3. 4. 5.
но сервак стопорится в отладчике с ошибкой "Column unknown" на строке c полем NEW.KIND_ACT_FLD Чую, не так и не там копаю. В поиске не нашел. Пните, плз, в нужном направлении. ================= Док. FB 2.5.2 26539, диалект 3, SS, Lazarus 1.5; FPC 2.7.1, UIB ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:10 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ДокМужики, че-та не соображу, подмогните, плз. но сервак стопорится в отладчике с ошибкой "Column unknown" на строке c полем NEW.KIND_ACT_FLD Чую, не так и не там копаю. В поиске не нашел. Пните, плз, в нужном направлении. Поиск не может найти то чего нет. В частности, NEW.XXX в триггерах на удаление ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:15 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
pastor, по сути вопроса есть, что сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:18 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Док, он и сказал по сути, указал направление. :) Смотри в old. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:22 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Док, OLD.KIND_ACT_FLD? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:22 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ДокНужно при попытке удаления в зависимости от условия Condition либо грохнуть запись, либо пометить "виртуальное" удаление и оставить ее живой. В триггере на таблицу ты этого не сможешь сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:24 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Симонов Денис, exception выкинуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:37 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Не, тут походу только на клиенте вместо delete делать update ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 15:48 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Barmaley57, почему? Это точно останавливает удаление. Если делать через ibdataset, то проще конечно через процедуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 16:00 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
навесь на таблицу UPDATABLE VIEW. работай через неё. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 16:00 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
wadman, exception выкинуть без проблем, а вот сделать пометку (проапдейтить) вместо удаления нет. На клиенте конечно обработать можно, но есть риск что поймаешь не то исключение. Так что тут либо делать это удаление через ХП, либо писать VIEW где триггеры выполнят любую логику ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 16:02 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Док, Ты не сможешь "отменить удаление" на сервере. И уже верно подсказали два варианта решения проблемы - либо не работать непосредственно с таблицей, а работать с view/sp и, например, в тригере BD вьюхи делать update твоей test_tbl (в большинстве случаев сам так делаю), либо же из клиентского приложения вместо delete делать update. IBX/FIB позволяют в свойстве DeleteSQL указать любой запрос, в том числе update вместо delete. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 16:57 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
удаление заменить на установку флага "видимо"-"невидимо" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 17:38 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
sorry, и проверять в триггере before update ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 17:39 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Barmaley57Док, OLD.KIND_ACT_FLD? судя по мануалу, эта переменная RO Симонов Денисесть риск что поймаешь не то исключение имхо, от компонентов зависит. В дельфях я пользовал FIBErrorHandler. Пользовательские исключения дают GDSCode 335544517, а там уже отлавливал ErrorHandler.ExceptionNumber. Правда все исключения пришлось искусственно ранжировать, чтобы они не путались между собой. Симонов Денисexception выкинуть без проблем, а вот сделать пометку (проапдейтить) вместо удаления нет. точно, щас вспомнилось, что Хелен еще в первом издании писала, что при удалении в триггере можно апдейтить только чужую таблю. Спасибо всем за идеи. Пойду думать и "пробывать" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 23:22 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Док, если таки прозрачно, то совет Мимопроходящего самый подходящий. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 09:43 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
afgm, читаю уже ... с вьюхами работать не приходилось... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 17:13 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Докчитаю уже ... с вьюхами работать не приходилось...Не боись, "оне не кусаются". Зато штука зело полезная. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 17:23 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Док, я извиняюсь, что встреваю в ваш великосветский разговор и рекомендации бест-практик, но херню они тебе советуют. В смысле, ты, всё равно согласишься и заюзаешь, конечно, но таки Dixi et animam levavi. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 17:40 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, ты вводишь меня в смятение Ты бы что посоветовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 19:37 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ДокГаджимурадов Рустам, ты вводишь меня в смятение Ты бы что посоветовал? У тебя вопрос чисто технического плана, но ведь решаешь ты логическую задачу. Которая, возможно, и не требует так вот "помечать запись на удаление". Ты нам расскажи, что делаешь, а уж мы старательно тебе объясним, что ты неправ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 19:52 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ZeroMQТы нам расскажи, что делаешь Задача тривиальна: предотвратить физическое удаление записей из таблицы юзером, не имеющим на то полномочий. Сделать это на клиенте не составляет труда, но... Мне кажется правильнее реализовывать логику ограничений средствами сервера, конечно, если это возможно и не требует чрезмерных усилий. Если вьюхи понравятся, пожалуй, на них и завяжусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 23:42 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ДокZeroMQТы нам расскажи, что делаешь Задача тривиальна: предотвратить физическое удаление записей из таблицы юзером, не имеющим на то полномочий. Сделать это на клиенте не составляет труда, но... Мне кажется правильнее реализовывать логику ограничений средствами сервера, конечно, если это возможно и не требует чрезмерных усилий. Если вьюхи понравятся, пожалуй, на них и завяжусь. Задачи у всех, конечно, разные, но тем не менее. У нас пользователь (любой) не может удалить из базы ничего. От слов "совсем" и "никогда". Везде при попытке удаления (в большинстве случаев - через вьюху, очень редко - из клиента) ставится deleted=1. И во всех выборках этот deleted учитывается. На протяжении многих лет куча народу сказали "большое спасибо" за такой подход. Когда можно и восстановить случайно удаленную запись, и сказать, кто и когда что удалил пытался удалить. И - да. Я тоже не понял Рустама. Хотя и латынь мы изучали, и гугло-переводчик никто не отменял. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2015, 01:49 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
ДокZeroMQТы нам расскажи, что делаешь Задача тривиальна: предотвратить физическое удаление записей из таблицы юзером, не имеющим на то полномочий. Сделать это на клиенте не составляет труда, но... Мне кажется правильнее реализовывать логику ограничений средствами сервера, конечно, если это возможно и не требует чрезмерных усилий. Если вьюхи понравятся, пожалуй, на них и завяжусь. Ну, как бы, если пользователю не дать прав на удаление - то он и не сможет удалить. И следить за этим будет таки да, сервер. И ничего делать не надо, от слова совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2015, 02:00 |
|
Пометка поля на удаление
|
|||
---|---|---|---|
#18+
YuRockДокпропущено... Задача тривиальна: предотвратить физическое удаление записей из таблицы юзером, не имеющим на то полномочий. Сделать это на клиенте не составляет труда, но... Мне кажется правильнее реализовывать логику ограничений средствами сервера, конечно, если это возможно и не требует чрезмерных усилий. Если вьюхи понравятся, пожалуй, на них и завяжусь. Ну, как бы, если пользователю не дать прав на удаление - то он и не сможет удалить. И следить за этим будет таки да, сервер. И ничего делать не надо, от слова совсем. +1, для этого есть роли и их права. Ну и логирование не помешает, чтоб знать кому руки потом оторвать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2015, 12:40 |
|
|
start [/forum/topic.php?fid=40&msg=39109583&tid=1562496]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 241ms |
total: | 375ms |
0 / 0 |