Репликация в Access
Есть основная база Access (одна база Access с таблицами+плюс клиенты Access со связанными таблицами) и удаленная база (одна база Access с таблицами+плюс клиенты Access со связанными таблицами). Удаленная база должна содержать часть первой (частичная репликация). В ней изменения данных не происходят - она предназначена только для чтения данных.
Необходимо сделать репликацию - чтобы все изменения который происходят с основной базой, например за в сутки, выгружались в файл, который бы высылался по электронной почте и мог быть загружен в удаленную базу. Т.е. в целях минимизации объема пересылаемой информации файл должен содержать только информацию о новых, изменненых и удаленных записях.
Есть ли в Access "красивая" возможность сравнивать две базы и писать их различия в файл, который можно потом использовать для синхронизации?
Я смотрел Сервис-Репликация. Репликацию он проводит, но только при этом не создается файл и удаленную базу надо иметь "под рукой".
Спасибо.
Set dbs = OpenDatabase("C:\basa.mdb")
dbs.Synchronize "www.yahoo.com/files/basa.mdb", dbRepImpExpChanges + dbRepSyncInternet
Цитата:
Originally posted by SergeySV
А ты с методом DAO dbs.Synchronize не игрался? что-нибудь типа такого:
Set dbs = OpenDatabase("C:\basa.mdb")
dbs.Synchronize "www.yahoo.com/files/basa.mdb", dbRepImpExpChanges + dbRepSyncInternet
А ты с методом DAO dbs.Synchronize не игрался? что-нибудь типа такого:
Set dbs = OpenDatabase("C:\basa.mdb")
dbs.Synchronize "www.yahoo.com/files/basa.mdb", dbRepImpExpChanges + dbRepSyncInternet
Это и есть стандартная синхронизация БД в Access. Для этого необходимо, чтобы вторая база была доступна через Инет.
Вариант проигрышный, т.к. БД содержит конфиденциальную информацию. Хотелось бы данные для синхронизации писать в файл, который затем шифровать и высылать электронной почтой.
А вот возможность писать такой файл в Access я не нашел. Может еще что-то можно предложить?
Ты только изм. данные хочешь или еще модули, формы?
Рассматриваем вариант, когда одна база изменяется и эти изменения надо передать в другую, "неподвижную", базу.
Начало: две базы идентичны.
1. В первой базе(которая будет изменяться) создается копия таблиц, которые ты хочешь синхронизировать со второй базой (для примера возмем одну таблицу: оргинал - Таб1, ее копия - Таб_Вр1).
2. Первая база поработала, содержание Таб1 изменилось. Запускаем запрос на сравнение Таб1 и Таб_Вр1. Этот запрос сразу создаст новую таблицу с несовпавшими записями - Таб_Изм1.
3. Таб_Изм1 - экспортируем в файл какого-нибудь формата (txt, xls и т.д.), шифруем его, посылаем почтой.
4. В первой базе приводим в соответствии Таб1 и Таб_Вр1. Либо удаляем Таб_Вр1 и создаем копию Таб1, либо дополняем Таб_Вр1 так, чтобы он Таб_Вр1=Таб1.
5. Вторая база получает файл, импортирует его себе в виде новой таблицы - Таб_Изм1.
6. Запускаем запрос на изменение данных в Таб1 (второй базы) в соответст. с Таб_Изм1.
Вообщем, вот так...
Думаю без 1,2 пункта не обойтись, а вот с последующими можно и побаловаться. Например таблицу с новыми данными экспортировать не простой файл, а вдругую пустую базу данных (создать ее по быстрому) и потом ее уже сжимать, шифровать, передавать, а там уже пихать ее как реплику и запускать репликацию...