Привет всем !
Возник интересный вопрос ...
Есть некий список БД (TPS, DBF, Btrieve, и т.д.) и нужно как-то зафиксировать
его состояние и через некоторое время определить было ли его изменение.
Гипотетически, можно загрузить файл целиком в бинарную строку и рассчитать её хеш.
Но это немного не то ... бинарная структура файла может изменится без изменения собственно самих данных.
Может быть есть идеи ? Заранее спасибо !
Признак изменения списка БД
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7691
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 69 раз
-
- Полимат
- Сообщения: 1745
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 15 раз
- Поблагодарили: 10 раз
Признак изменения списка БД
может просто log по этому файлу, например через триггер
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 7691
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 69 раз
Признак изменения списка БД
Спасибо ... да, по идее это даёт нужный результат ...
Правда немного затратно перелопатить весь список, но наверно другого пути и нет.
Make Clarion Great Again !
Признак изменения списка БД
Есть одна небольшая засада
record record
s1 cstring(100)
end
Есть две записи ( с одинаковым s1)
record.s1 = '123<0>123....'
record.s2 = '123<0>456....'
Если сравнивать значения полей, записи одинаковы. А если сравнивать Record - то разные, после концевого байта в cstriing находится мусор.
Я делал журнал операций над базами данных в отдельном tps-файле...
record record
s1 cstring(100)
end
Есть две записи ( с одинаковым s1)
record.s1 = '123<0>123....'
record.s2 = '123<0>456....'
Если сравнивать значения полей, записи одинаковы. А если сравнивать Record - то разные, после концевого байта в cstriing находится мусор.
Я делал журнал операций над базами данных в отдельном tps-файле...