Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в триггере взять значение NEW и OLD по имени поля в переменной? / 25 сообщений из 33, страница 1 из 2
16.05.2017, 17:47
    #39454023
Timujin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Firebird 1.5
Хочу в триггере узнать, значение какого поля изменилось.
Как-то можно это сделать?
Хотел в цикле по списку полей таблицы сравнивать значения NEW и OLD и если не равны, то оно.
...
Рейтинг: 0 / 0
16.05.2017, 17:53
    #39454032
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Hello, Timujin!
You wrote on 16 мая 2017 г. 17:52:31:

Timujin> Как-то можно это сделать?проверкой КАЖДОГО.
Timujin> Хотел в цикле по списку полей таблицы обломись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 18:17
    #39454059
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Вроде в 4-ке собирались ввести тип "запись" (или структура), там можно будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 18:30
    #39454066
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Всё равно нельзя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 18:36
    #39454073
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
для ленивых но неимоверно творческих индивидуумов возможен вариант
автоматизированной генерации скрипта создания триггера с проверкой всего сЦущего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 18:41
    #39454080
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Это от изменений метаданных не спасёт, нужно
будет скрипт создания триггеров перезапускать.

Ну и триггеры только универсальные - чуть
влево/вправо - вручную править.

P.S. Ибо нефиг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 18:45
    #39454087
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Dimitry SibiryakovВсё равно нельзя.
Это ты про четверку?

AFAIU, там можно будет писать или if (OLD.* = NEW.*) (хотя это маловероятно),
или что-то вроде "declare a, b of tablerec; a = OLD; b = NEW; if (a = b)".
Хотя ХЗ, может и ограничатся только select into a;

P.S. Или это я вообще спутал чью-то хотелку и планы птицеводов.
...
Рейтинг: 0 / 0
16.05.2017, 18:47
    #39454091
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
TimujinFirebird 1.5
Хочу в триггере узнать, значение какого поля изменилось.
Как-то можно это сделать?
Хотел в цикле по списку полей таблицы сравнивать значения NEW и OLD и если не равны, то оно.
это надо было в хотелках озвучить
(а может и озвучивалось, не помню)
и да что-же в результате, "кто пиво пьет"?
...
Рейтинг: 0 / 0
16.05.2017, 18:48
    #39454092
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
триггеров на каждое событие можно создавать более одного
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 19:13
    #39454115
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Мимопроходящий> триггеров на каждое событие можно создавать более одного

Вы сами такое практикуете, кстати?
Когда триггеров на событие становится больше
трёх, их становится очень трудно сопровождать.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 19:56
    #39454124
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Гаджимурадов РустамВы сами такое практикуете, кстати?

Зацени

...
Рейтинг: 0 / 0
16.05.2017, 19:56
    #39454125
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
...
Рейтинг: 0 / 0
16.05.2017, 21:05
    #39454165
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Да ну, в пень такое сопровождать. Я уже навидался такого в своё время, нафик-нафик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 21:16
    #39454175
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Гаджимурадов РустамДа ну, в пень такое сопровождать. Я уже навидался такого в своё время, нафик-нафик.

Вот я и говорю - куда бедному крестьянину деваться :)
...
Рейтинг: 0 / 0
16.05.2017, 21:18
    #39454176
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Gallemar> Вот я и говорю - куда бедному крестьянину деваться :)

Я своё мнение тебе уже озвучивал, ты громко обиделся,
сказал, что я не понимаю твоего стремления к знаниям и т.д.

Так что молчи и грызи кактус, он вкусный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2017, 21:19
    #39454179
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Гаджимурадов РустамТак что молчи и грызи кактус, он вкусный.

Какие в Сибири кактусы? Ёлки глодаем :)
...
Рейтинг: 0 / 0
17.05.2017, 03:38
    #39454240
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Гаджимурадов РустамМимопроходящий> триггеров на каждое событие можно создавать более одного

Вы сами такое практикуете, кстати?
Когда триггеров на событие становится больше
трёх, их становится очень трудно сопровождать.



Я триггера создаю по смыслу. Один смысл - один триггер. Смысл прямо в наименивании триггера заявлен.
Мне кажется наоборот неудобным когда в один триггер напихано всего что по смыслу между собой не связано.
Нужно к примеру изменить поведение некоей системы - я заранее знаю как будет называться триггер на таблице, только их и меняю, не затрагивая остальное.
...
Рейтинг: 0 / 0
17.05.2017, 05:00
    #39454248
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
fraksЯ триггера создаю по смыслу. Один смысл - один триггер. Смысл прямо в наименивании триггера заявлен.
Мне кажется наоборот неудобным когда в один триггер напихано всего что по смыслу между собой не связано.
Нужно к примеру изменить поведение некоей системы - я заранее знаю как будет называться триггер на таблице, только их и меняю, не затрагивая остальное.
Так оно и должно быть, если ты не мазохист.
...
Рейтинг: 0 / 0
17.05.2017, 09:22
    #39454334
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Гаджимурадов РустамВроде в 4-ке собирались ввести тип "запись" (или структура), там можно будет.

AFAIU, там можно будет писать или if (OLD.* = NEW.*) (хотя это маловероятно),
или что-то вроде "declare a, b of tablerec; a = OLD; b = NEW; if (a = b)".

P.S. Или это я вообще спутал чью-то хотелку и планы птицеводов.

Спутал конечно. Недавно что-то такое обсуждалось.
Из новых типов там только DECFLOAT и не совсем новый тип BINARY. Возможно ещё будет
TIMESTAMP WITH TIMEZONE.
...
Рейтинг: 0 / 0
17.05.2017, 10:13
    #39454381
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Народ, а есть ли смысл в триггере на изменение конкретного поля? Например, в SQLAnywhere такое есть. Я этим пользовался. Т.е. триггер срабатывает только при изменении значения конкретного поля. Соответственно, уже не надо делать проверку изменилось ли что-то. ТС не это хочет?
...
Рейтинг: 0 / 0
17.05.2017, 10:19
    #39454388
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
KreatorXXIНарод, а есть ли смысл в триггере на изменение конкретного поля?

Смысл есть. В стандарте такое тоже есть. Насчёт планов сделать такое в FB не слышал.
...
Рейтинг: 0 / 0
17.05.2017, 10:23
    #39454391
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
В теме "Конкурс идей ...", кажется, не упоминалось. Надо бы сделать. И, наверно, не очень сложно.
...
Рейтинг: 0 / 0
17.05.2017, 11:15
    #39454451
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Невозможность желаемого автору сводится к невозможности использования NEW. и OLD. переменных в запросе.
(и, следовательно, невозможности их получения динамически через Execute Statement)
...
Рейтинг: 0 / 0
17.05.2017, 11:41
    #39454487
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Переделать таблицу из "в ширину" на "в глубину", когда останется одно значимое поле+идентификатор роли поля, проблема будет решена на корню. Остальные сопутствующие проблемы оставляю за рамками, их тоже малёху будет.
...
Рейтинг: 0 / 0
17.05.2017, 14:07
    #39454653
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
Симонов Денис> Спутал конечно. Недавно что-то такое обсуждалось.

Значит, переоценил чью-то хотелку.

Симонов Денис> В стандарте такое тоже есть.

Что в стандарте есть, триггер не на таблицу, а на поле?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в триггере взять значение NEW и OLD по имени поля в переменной? / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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