Страница 1 из 1
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 13:15
talgat55
с11 ABC MS SQL . Есть в таблице поля вместо массива типа Z1 - Z100 ( string10 ). Как проверить проще было-ли что-то изменено в этих полях кроме перечисления типа if len(z1) <> LEN(Z1 ДО начала редактирования ) and len(z2....
?
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 14:52
talgat55
сделал флаг для каждого поля - если меняли то типа=1
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 15:10
finsoftrz
По хорошему, надо логировать изменения. Но это целая достаточно не простая задача, около 20 лет назад подробно обсуждали.
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 16:26
ingasoftplus
посмотрите в эту сторону:
Par2: How to tell whether a field has been changed
2000-07-21 -- Dennis Evans
Late in INIT call
Then, in TakeCompleted Before Parent call, you can test whether any field on the Form has been changed with:
Код: Выделить всё
if History::pre:RECORD.pre:label <> pre:label
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 16:26
kreator
Вы хотите проверять было ли изменение в словаре или на сервере?
В любом случае - дурацкая идея. Что это даст на уровне клиента (пользователя)?
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 16:40
finsoftrz
kreator писал(а): ↑13 Февраль 2024, 16:26
Вы хотите проверять было ли изменение в словаре или на сервере?
В любом случае - дурацкая идея. Что это даст на уровне клиента (пользователя)?
Разные потребности бывают. Если просто сам факт изменения, то это мало информативно, для решения какого-то частного вопроса. Если полноценно логировать изменения, то там много чего можно наворотить. Это так называемый "аудиторский след". Я вообще не представляю, как без этого можно нормально разбирать полеты с пользователями.
отследить было-ли изменение определенных полей
Добавлено: 13 Февраль 2024, 19:14
Игорь Столяров
talgat55 писал(а): ↑13 Февраль 2024, 13:15
было-ли что-то изменено в этих полях
Помещаем поля в GROUP (или накрываем строкой OVER) и считаем хеш до и после открытия карточки.
Сравниваем хеши и видим были ли изменения или нет. Но и не более того.
отследить было-ли изменение определенных полей
Добавлено: 14 Февраль 2024, 16:31
kreator
Игорь Столяров писал(а): ↑13 Февраль 2024, 19:14
talgat55 писал(а): ↑13 Февраль 2024, 13:15
было-ли что-то изменено в этих полях
Помещаем поля в GROUP (или накрываем строкой OVER) и считаем хеш до и после открытия карточки.
Сравниваем хеши и видим были ли изменения или нет. Но и не более того.
Ну а дальше-то чего? Ещё и до расчёта хеша ошибка вылезет при открытии таблицы.
отследить было-ли изменение определенных полей
Добавлено: 14 Февраль 2024, 20:52
Игорь Столяров
kreator писал(а): ↑14 Февраль 2024, 16:31
Ну а дальше-то чего? Ещё и до расчёта хеша ошибка вылезет при открытии таблицы.
Вот для этого и проверяем - что бы не открывать список (с ошибкой), если структура изменилась.
У нас нет задачи указать формат какого поля, кем и зачем было изменено - это задача для протоколирования.