отследить было-ли изменение определенных полей

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

отследить было-ли изменение определенных полей

Сообщение talgat55 »

с11 ABC MS SQL . Есть в таблице поля вместо массива типа Z1 - Z100 ( string10 ). Как проверить проще было-ли что-то изменено в этих полях кроме перечисления типа if len(z1) <> LEN(Z1 ДО начала редактирования ) and len(z2....
?
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

отследить было-ли изменение определенных полей

Сообщение talgat55 »

сделал флаг для каждого поля - если меняли то типа=1
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

отследить было-ли изменение определенных полей

Сообщение finsoftrz »

По хорошему, надо логировать изменения. Но это целая достаточно не простая задача, около 20 лет назад подробно обсуждали. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 426
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 90 раз
Поблагодарили: 5 раз

отследить было-ли изменение определенных полей

Сообщение ingasoftplus »

посмотрите в эту сторону:

Par2: How to tell whether a field has been changed
2000-07-21 -- Dennis Evans

Late in INIT call

Код: Выделить всё

 self.SaveHistory()
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
Последний раз редактировалось ingasoftplus 13 Февраль 2024, 17:54, всего редактировалось 1 раз.
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

отследить было-ли изменение определенных полей

Сообщение kreator »

Вы хотите проверять было ли изменение в словаре или на сервере?
В любом случае - дурацкая идея. Что это даст на уровне клиента (пользователя)?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

отследить было-ли изменение определенных полей

Сообщение finsoftrz »

kreator писал(а): 13 Февраль 2024, 16:26 Вы хотите проверять было ли изменение в словаре или на сервере?
В любом случае - дурацкая идея. Что это даст на уровне клиента (пользователя)?
Разные потребности бывают. Если просто сам факт изменения, то это мало информативно, для решения какого-то частного вопроса. Если полноценно логировать изменения, то там много чего можно наворотить. Это так называемый "аудиторский след". Я вообще не представляю, как без этого можно нормально разбирать полеты с пользователями.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7377
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

отследить было-ли изменение определенных полей

Сообщение Игорь Столяров »

talgat55 писал(а): 13 Февраль 2024, 13:15 было-ли что-то изменено в этих полях
Помещаем поля в GROUP (или накрываем строкой OVER) и считаем хеш до и после открытия карточки.
Сравниваем хеши и видим были ли изменения или нет. Но и не более того. :shock:
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

отследить было-ли изменение определенных полей

Сообщение kreator »

Игорь Столяров писал(а): 13 Февраль 2024, 19:14
talgat55 писал(а): 13 Февраль 2024, 13:15 было-ли что-то изменено в этих полях
Помещаем поля в GROUP (или накрываем строкой OVER) и считаем хеш до и после открытия карточки.
Сравниваем хеши и видим были ли изменения или нет. Но и не более того. :shock:
Ну а дальше-то чего? Ещё и до расчёта хеша ошибка вылезет при открытии таблицы.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7377
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

отследить было-ли изменение определенных полей

Сообщение Игорь Столяров »

kreator писал(а): 14 Февраль 2024, 16:31 Ну а дальше-то чего? Ещё и до расчёта хеша ошибка вылезет при открытии таблицы.
Вот для этого и проверяем - что бы не открывать список (с ошибкой), если структура изменилась.
У нас нет задачи указать формат какого поля, кем и зачем было изменено - это задача для протоколирования.
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить