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

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

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

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

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

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

Зацени

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

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

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

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

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

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



Я триггера создаю по смыслу. Один смысл - один триггер. Смысл прямо в наименивании триггера заявлен.
Мне кажется наоборот неудобным когда в один триггер напихано всего что по смыслу между собой не связано.
Нужно к примеру изменить поведение некоей системы - я заранее знаю как будет называться триггер на таблице, только их и меняю, не затрагивая остальное.
...
Рейтинг: 0 / 0
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
    #39454248
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksЯ триггера создаю по смыслу. Один смысл - один триггер. Смысл прямо в наименивании триггера заявлен.
Мне кажется наоборот неудобным когда в один триггер напихано всего что по смыслу между собой не связано.
Нужно к примеру изменить поведение некоей системы - я заранее знаю как будет называться триггер на таблице, только их и меняю, не затрагивая остальное.
Так оно и должно быть, если ты не мазохист.
...
Рейтинг: 0 / 0
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
    #39454334
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВроде в 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
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
    #39454381
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а есть ли смысл в триггере на изменение конкретного поля? Например, в SQLAnywhere такое есть. Я этим пользовался. Т.е. триггер срабатывает только при изменении значения конкретного поля. Соответственно, уже не надо делать проверку изменилось ли что-то. ТС не это хочет?
...
Рейтинг: 0 / 0
Можно ли в триггере взять значение NEW и OLD по имени поля в переменной?
    #39454388
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIНарод, а есть ли смысл в триггере на изменение конкретного поля?

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

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

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

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


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