Большое спасибо!
Ещё вопрос касательно tblSettings, какие именно траблы могут быть с этой таблицей? Вы в ней организовали служебные данные механизма синхронизации или туда вносятся служебные данные при добавлении/изменении записей рабочих таблиц? История изменений участвует как-то в синхронизации? А должна я считаю, очень удобно
Синхронизация вашей программы отличается чем-то от механизмов синхронизации чистого Access?
Ещё вопрос по времени срабатывания триггера: Раз в час имеется ввиду относительно чего? После запуска программы или привязка к системным часам?
Собственно как реализовать смещение времени, уже придумал. Можно задать запуск триггера раз в минуту, где микрокод будет проверять системное время и при соответствии с заданными параметрами, запускать синхронизацию. Оператор If бла-бла-бла. Помогите правильно расписать.
---------------------------
Медитирую тут на счет реализации синхронизации с помощью таблицы истории изменений, достаточно было бы объединять её записи с разных репликаций, кроме идентичных по времени и действию и прописывать записи всех таблиц в соответствии полученной общей истории. Тогда механизм синхронизации, работал бы при любых раскладах, не теряя данные, в каком бы порядке реплики при этом не объединялись, действуя строго по хронологии истории. Хотя конечно ресурсоемкий процесс для больших баз. Может реализуете опционально?
Имеющимися средствами можно как-то так:
Из под Access создаем таблицы tblHistory<FilialName> c номером или именем филиалов, также tblHistoryOld<FilialName> . Создаем такие файлы за каждый имеющийся филиал. Access нужен чтоб их изменения не велись в истории, ну или вы подскажете где какой флаг поправить в tblSettings для этого, или как временно отключать ведение истории.
Шаги синхронизации:
1) Копируем из всех tblHistory<FilialName> в tblHistoryOld<FilialName> недостающие записи.
2) Так же копируем новые записи из tblUpdatesHistory в tblHistory<FilialName> данного филиала, определив к какому филиалу относится реплика через служебные пометки.
3) Синхронизируем все tblHistory<FilialName> и только их, выбрав такую возможность изначально при создании реплик. Что позволит синхронизатору безошибочно лишь добавить недостающие новые записи индивидуальных таблиц истории с их уникальным ID
4) Создаем записи/изменения в рабочих таблицах путем выявления уникальных записей из таблиц старой и новой истории всех филиалов. Что исключит перезапись всех записей в рабочих таблицах, записывая лишь недостающие.
Как-то так в общем