у меня вопрос, как сделать что-то вроде триггера в Intersystems Cache. Ситуация: например, у меня есть таблица X со свойствами (столбцами) valueA, valueB. Я хочу обновить значение B, когда значение A изменилось с помощью UPDATE. Я определил глобальную переменную ^VALUEBGENER и использовал для ее увеличения функцию $SEQ. Моя идея заключалась в следующем:
Class User.X Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = X]
{
Property VALUEA As %Library.String(MAXLEN = 8) [ Required,SqlColumnumber = 1];
Property VALUEB As %Library.Integer(MAXVAL = 2147483647, MINVAL = -2147483648) [ Required,SqlColumnNumber = 1,SqlComputed,SqlColumnumber = 2, SqlComputeCode = {SET {valueB}=$SEQ(^VALUEBGENER)}, SqlComputeOnChange = %%UPDATE];
}
но это не работает, когда я меняю значение, но работает, когда я меняю значение, так что есть идеи? P.S. Извините за плохой английский