Вопрос о синхронизации

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Вопрос о синхронизации

Сообщение muskin »

Clarion 6.0(ABC)

Всем привет.

Помогите мне решить вопрос с синхронизацией баз данных.
В чем суть: одна и та же СУБД установлена на двух несвязанных компах, которые наполняют базу каждый по-своему.
Необходимо иногда базы на этих компах синхронизировать с помощью промежуточного носителя(USB-шки), т.е. первый комп хочу синхронизировать с флэшкой, затем второй комп хочу синхронизировать с той же флэшкой(соответственно, используя данные с первого компа), а потом, то же самое в обратном порядке.

Можно ли реализовать эту процедуру?
Извините за сумбурность описания проблемы.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
vd-vuf
Бывалый
Сообщения: 61
Зарегистрирован: 12 Декабрь 2008, 12:09
Откуда: Верхний Уфалей
Контактная информация:

Re: Вопрос о синхронизации

Сообщение vd-vuf »

Все зависит от того как постороена бд.
Без особых проблем можно:
Если бд изначально задумана для таких манипуляций,
если нет пересечений в записях: одну и туже информацию НЕ правят на обоих компах, значения уникальных полей уникальны для всей бд (1я бд + 2я бд).

Можно если перепроектировать бд с учетом задачи синхронизации.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8037
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Вопрос о синхронизации

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

Привет !

Если говорить об общем случае, то по теории репликации БД все выглядит достаточно просто.

1. Каждая запись в БД должна иметь уникальный код, на практике используют GUID.
2. При "выгрузке на флешку" делается полная копия БД в файл, в котором указывается номер файла в БД, код записи в этом файле и ее содержание (например в BLOB).
3. При востановлении данных (синхронизации) проверяем наличие записи с кодом в файле с указанным номером. При ее отсутвии - добавляем.

В общем-то и все. На практике конечно будут мелкие ньюансы. Например, не должно быть других уникальных ключей, кроме как с использованием кода записи, иначе могут возникнуть ошибки при дублирования ключа при восстанвлении. Или эту проблему нужно как-то разруливать, не забывая о связях по ключу с другими списками БД.
Что делать если при восстановлении запись в БД есть, но она была изменена ? Что делать если при восстановлении записи нет, но она была раньше и была удалена ?
И т.д. и т.п. - но это уже рабочие вопросы ... ;)
Make Clarion Great Again ! 😎
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Вопрос о синхронизации

Сообщение muskin »

Здравствуйте.
Все записи уникальны. Процесс синхронизации потенциально для себя решил сразу (с помощью ADD в прямом и обратном порядке).
Вопрос задал неправильно - я имел ввиду, как открывать с компа базы на флэшке, путь к которым может быть разным и учитывая, что Буква диска у флэшки может быть тоже разная на разных компах.
Считал, что указание пути файла в NAME (DOS filename specification (PROP:NAME)) в описании файла должно быть строгим(наприимер, C:\BAZA\BAZA.TPS). Оказывается это не так.
Задачу для себя решил очень просто.
Спасибо всем за советы и рекомендации.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Ответить