Операторы изменений (SET, CHANGED, ...)
Операторы изменений позволяют определить произошли ли для свойства в текущей сессии те или иные виды изменений. Все эти операторы являются производными от оператора предыдущего значения (PREV
), однако для улучшения читабельности и производительности рекомендуется использовать именно их. В следующей таблице приведены поддерживаемые виды изменений и их описание:
Оператор | Значение | Описание |
---|---|---|
SET | f AND NOT PREV(f) | Установлено значение |
DROPPED | NOT f AND PREV(f) | Сброшено значение |
CHANGED | (f OR PREV(f)) AND NOT f==PREV(f) | Изменено значение |
SETCHANGED | f AND NOT f==PREV(f) или CHANGED(f) AND NOT DROPPED(f) | Значение изменено на не NULL |
DROPCHANGED | CHANGED(f) AND NOT SET(f) | Значение или сброшено, или изменен о с одного не NULL на другое не NULL |
SETDROPPED | SET(f) OR DROPPED(f) | Значение или сброшено или установлено с NULL на не NULL |
warning
Эти операторы вычисляются по другому внутри обработки событий: в этом случае они возвращают изменения с момента предыдущего возникновения этого события (а точнее, окончания выполнения всех его обработок).
Язык
Для объявления свойства при помощи операторов изменений, используются следующие синтаксические конструкции.