Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Update Триггер на таблицу / 25 сообщений из 29, страница 1 из 2
08.10.2014, 16:13
    #38770624
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Добрый день! Я хочу сделать триггер, который бы срабатывал при изменении значения в поле таблицы! НО, само значение этого поля не меняться. Мне важно отловить момент, когда именно был вызван Post при редактировании именно этого поля, поэтому услвие old.name<>new.name - не подойдет.. Скажите, можно ли как-то проверить какое именно поле редактировалось, если явно значение не поменялось?
...
Рейтинг: 0 / 0
08.10.2014, 16:19
    #38770637
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin, слушай, у тебя в руках есть волшебный инструмент delphi: перед Post, ты можешь сделать что душе угодно.
...
Рейтинг: 0 / 0
08.10.2014, 16:53
    #38770693
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin,

бред. даже если я в DBEdit отредактировал текст, но потом вернул его значение назад, то это означает, что я его НЕ редактировал. Кроме того, да, серверу пофиг все эти манипуляции на клиенте. Он принимает с клиента данные, и они либо отличаются, либо не отличаются. А с какой скоростью или как вводил их клиент (и вводил ли вообще) - сервер не интересует, и узнать это все на его стороне невозможно.
Типа как "сколько раз я сходил в сортир за последние два часа, перед тем, как написать этот коммент".
...
Рейтинг: 0 / 0
08.10.2014, 17:24
    #38770724
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
kdv,

ну вот я так и думал.. Тогда попробую сформулировать вопрос, относительно самой задачи. Мне нужно определенному пользователю устроить закрытие клиента.

Для этого нужно где создать POST_EVENT.

Я думал так.
Каждый клиент при входе в БД в IBEVENTs подписывается на событие Собственное ID

В БД я делаю таблицу с полем USER_ID и если значение в поле меняется вызывают триггером POST_EVENT(NEW.USER_ID).

Получается, что если я хочу кикнуть юзера с ID=5, то просто вписываю туда 5 и он кикниться.

Но, я мог кикать его в прошлый раз и тогда значение как бы не изменилось и никакого UPDATE не было
...
Рейтинг: 0 / 0
08.10.2014, 17:26
    #38770730
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin,

с событиями плохая идея. Тебе нужно именно закрыть программу или просто отрубить пользователя от БД. Если второе, то для этого есть таблицы мониторинга.
...
Рейтинг: 0 / 0
08.10.2014, 17:52
    #38770755
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_beginВ БД я делаю таблицу с полем USER_ID и если значение в поле меняется
вызывают триггером POST_EVENT(NEW.USER_ID).

Получается, что если я хочу кикнуть юзера с ID=5, то просто вписываю туда 5 и он
кикниться.
А зачем такая черезжопица с триггерами и идентификаторами?

1) Приложение может подписываться на событие с именем, совпадающим с именем пользователя.
2) POST_EVENT может вызываться и без всякого триггера, ручками.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.10.2014, 17:53
    #38770756
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
UPD! Оказывается, что если менять значение через SQL_UPDATE то триггер UPDATE срабатывает в любом случае!
...
Рейтинг: 0 / 0
08.10.2014, 18:05
    #38770777
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Dimitry Sibiryakov,

а как вызвать POST_EVENT руками?
...
Рейтинг: 0 / 0
08.10.2014, 18:12
    #38770786
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin,
Только если вписать Post_event в процедуру и вызывать эту процедуру?
...
Рейтинг: 0 / 0
08.10.2014, 18:17
    #38770795
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Hello, Delphi_begin!
You wrote on 8 октября 2014 г. 18:16:36:

Delphi_begin> Только если вписать Post_event в процедуру и вызывать эту процедуру?
ты получишь его только после коммита.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.10.2014, 18:22
    #38770803
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Мимопроходящий,

да, я понимаю. Ну я же сам буду инициировать кик из базы, так что не влом сделать и комит) А есть другие способы вызывать POST_EVENT, кроме как из триггеров и процедур?
...
Рейтинг: 0 / 0
08.10.2014, 18:25
    #38770805
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_beginТолько если вписать Post_event в процедуру и вызывать эту процедуру?
Открой для себя EXECUTE BLOCK.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.10.2014, 18:48
    #38770824
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin,

mon$attachments.
...
Рейтинг: 0 / 0
13.10.2014, 10:15
    #38774790
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
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.
...
Рейтинг: 0 / 0
13.10.2014, 10:47
    #38774816
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
...
Рейтинг: 0 / 0
13.10.2014, 11:08
    #38774844
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
kdv,

Я читал, постов выше есть код, который я пытаюсь запустить, который соответствует описанию. Что же не так?
...
Рейтинг: 0 / 0
13.10.2014, 11:17
    #38774851
slay2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
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 указан?
...
Рейтинг: 0 / 0
13.10.2014, 11:53
    #38774901
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
slay2012,

Это я добавил когда в первый раз не компилилось. Если убрать, та же ошибка!
...
Рейтинг: 0 / 0
13.10.2014, 12:00
    #38774906
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_beginА можно пример Execute BLOCK для FB 2_0
Примеры в doc/sql.extensions/README.execute_block.txt тебя не устраивают чем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.10.2014, 12:28
    #38774955
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Dimitry Sibiryakov,

тем, что согласно примеру я пишу

EXECUTE BLOCK
AS
BEGIN
POST_EVENT('SD');
END

и запрос не выполняется
...
Рейтинг: 0 / 0
13.10.2014, 12:29
    #38774959
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_begin,

где ты в синтаксисе POST_EVENT скобки нашёл?
...
Рейтинг: 0 / 0
13.10.2014, 12:36
    #38774975
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_beginя пишу
Пишешь в где?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.10.2014, 14:24
    #38775136
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Dimitry Sibiryakov,

sql manager for interbase & firebird
...
Рейтинг: 0 / 0
13.10.2014, 14:25
    #38775137
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
Симонов Денис,

скобки можно использовать
...
Рейтинг: 0 / 0
13.10.2014, 14:28
    #38775141
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update Триггер на таблицу
delphi_beginи запрос не выполняется

как узнал?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Update Триггер на таблицу / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]