Страница 1 из 1

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

Добавлено: 18 Декабрь 2020, 22:18
Игорь Столяров
Привет всем ! :)

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

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

Может быть есть идеи ? Заранее спасибо ! :)

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

Добавлено: 19 Декабрь 2020, 10:29
gopstop2007
может просто log по этому файлу, например через триггер

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

Добавлено: 19 Декабрь 2020, 11:27
RaFaeL
Посчитай хэш строк (от :record) и хэш от строки из хэшей строк

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

Добавлено: 19 Декабрь 2020, 11:31
Игорь Столяров
RaFaeL писал(а): 19 Декабрь 2020, 11:27 Посчитай хэш строк (от :record) и хэш от строки из хэшей строк
Спасибо ... да, по идее это даёт нужный результат ... :)
Правда немного затратно перелопатить весь список, но наверно другого пути и нет. :(

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

Добавлено: 20 Декабрь 2020, 14:06
Yufil
Есть одна небольшая засада

record record
s1 cstring(100)
end

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

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