Признак изменения списка БД

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Признак изменения списка БД

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

Привет всем ! :)

Возник интересный вопрос ...
Есть некий список БД (TPS, DBF, Btrieve, и т.д.) и нужно как-то зафиксировать
его состояние и через некоторое время определить было ли его изменение.

Гипотетически, можно загрузить файл целиком в бинарную строку и рассчитать её хеш.
Но это немного не то ... бинарная структура файла может изменится без изменения собственно самих данных.

Может быть есть идеи ? Заранее спасибо ! :)
«V» значит Вендетта !
gopstop2007
✯ Ветеран ✯
Сообщения: 1543
Зарегистрирован: 25 Март 2009, 21:55

Признак изменения списка БД

Сообщение gopstop2007 »

может просто log по этому файлу, например через триггер
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1164
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

Признак изменения списка БД

Сообщение RaFaeL »

Посчитай хэш строк (от :record) и хэш от строки из хэшей строк
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Признак изменения списка БД

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

RaFaeL писал(а): 19 Декабрь 2020, 11:27 Посчитай хэш строк (от :record) и хэш от строки из хэшей строк
Спасибо ... да, по идее это даёт нужный результат ... :)
Правда немного затратно перелопатить весь список, но наверно другого пути и нет. :(
«V» значит Вендетта !
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Признак изменения списка БД

Сообщение Yufil »

Есть одна небольшая засада

record record
s1 cstring(100)
end

Есть две записи ( с одинаковым s1)
record.s1 = '123<0>123....'
record.s2 = '123<0>456....'

Если сравнивать значения полей, записи одинаковы. А если сравнивать Record - то разные, после концевого байта в cstriing находится мусор.
Я делал журнал операций над базами данных в отдельном tps-файле...
Ответить