|
|
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Добрый день! Я хочу сделать триггер, который бы срабатывал при изменении значения в поле таблицы! НО, само значение этого поля не меняться. Мне важно отловить момент, когда именно был вызван Post при редактировании именно этого поля, поэтому услвие old.name<>new.name - не подойдет.. Скажите, можно ли как-то проверить какое именно поле редактировалось, если явно значение не поменялось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 16:13 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, слушай, у тебя в руках есть волшебный инструмент delphi: перед Post, ты можешь сделать что душе угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 16:19 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, бред. даже если я в DBEdit отредактировал текст, но потом вернул его значение назад, то это означает, что я его НЕ редактировал. Кроме того, да, серверу пофиг все эти манипуляции на клиенте. Он принимает с клиента данные, и они либо отличаются, либо не отличаются. А с какой скоростью или как вводил их клиент (и вводил ли вообще) - сервер не интересует, и узнать это все на его стороне невозможно. Типа как "сколько раз я сходил в сортир за последние два часа, перед тем, как написать этот коммент". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 16:53 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
kdv, ну вот я так и думал.. Тогда попробую сформулировать вопрос, относительно самой задачи. Мне нужно определенному пользователю устроить закрытие клиента. Для этого нужно где создать POST_EVENT. Я думал так. Каждый клиент при входе в БД в IBEVENTs подписывается на событие Собственное ID В БД я делаю таблицу с полем USER_ID и если значение в поле меняется вызывают триггером POST_EVENT(NEW.USER_ID). Получается, что если я хочу кикнуть юзера с ID=5, то просто вписываю туда 5 и он кикниться. Но, я мог кикать его в прошлый раз и тогда значение как бы не изменилось и никакого UPDATE не было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 17:24 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, с событиями плохая идея. Тебе нужно именно закрыть программу или просто отрубить пользователя от БД. Если второе, то для этого есть таблицы мониторинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 17:26 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_beginВ БД я делаю таблицу с полем USER_ID и если значение в поле меняется вызывают триггером POST_EVENT(NEW.USER_ID). Получается, что если я хочу кикнуть юзера с ID=5, то просто вписываю туда 5 и он кикниться. А зачем такая черезжопица с триггерами и идентификаторами? 1) Приложение может подписываться на событие с именем, совпадающим с именем пользователя. 2) POST_EVENT может вызываться и без всякого триггера, ручками. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 17:52 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
UPD! Оказывается, что если менять значение через SQL_UPDATE то триггер UPDATE срабатывает в любом случае! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 17:53 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а как вызвать POST_EVENT руками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:05 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, Только если вписать Post_event в процедуру и вызывать эту процедуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:12 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Hello, Delphi_begin! You wrote on 8 октября 2014 г. 18:16:36: Delphi_begin> Только если вписать Post_event в процедуру и вызывать эту процедуру? ты получишь его только после коммита. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:17 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, да, я понимаю. Ну я же сам буду инициировать кик из базы, так что не влом сделать и комит) А есть другие способы вызывать POST_EVENT, кроме как из триггеров и процедур? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:22 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_beginТолько если вписать Post_event в процедуру и вызывать эту процедуру? Открой для себя EXECUTE BLOCK. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:25 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, mon$attachments. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 18:48 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А можно пример Execute BLOCK для FB 2_0 Просто у меня не выполняется запрос EXECUTE BLOCK AS BEGIN POST_EVENT('SD'); END END Invalid token. Dynamic SQL Error. SQL error code = -104. Unexpected end of command - line 6, column 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 10:15 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
kdv, Я читал, постов выше есть код, который я пытаюсь запустить, который соответствует описанию. Что же не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 11:08 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_beginDimitry Sibiryakov, EXECUTE BLOCK AS BEGIN POST_EVENT('SD'); END END Invalid token. Dynamic SQL Error. SQL error code = -104. Unexpected end of command - line 6, column 60. Вот зачем там два раза END указан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 11:17 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
slay2012, Это я добавил когда в первый раз не компилилось. Если убрать, та же ошибка! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 11:53 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_beginА можно пример Execute BLOCK для FB 2_0 Примеры в doc/sql.extensions/README.execute_block.txt тебя не устраивают чем? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 12:00 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, тем, что согласно примеру я пишу EXECUTE BLOCK AS BEGIN POST_EVENT('SD'); END и запрос не выполняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 12:28 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_begin, где ты в синтаксисе POST_EVENT скобки нашёл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 12:29 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
delphi_beginя пишу Пишешь в где? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 12:36 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, sql manager for interbase & firebird ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 14:24 |
|
||
|
Update Триггер на таблицу
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, скобки можно использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 14:25 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38774955&tid=1563277]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 529ms |

| 0 / 0 |
