Я пишу двухстороннюю серверную - репликацию Firebird с приложением C# и сталкиваюсь со следующей проблемой. У меня есть таблица журналов с именем таблицы pk записи и типом выполнения запроса на нем. Например, если в таблице продаж была вставлена строка с ключом primery из 4, будет имя таблицы, pk записи и вставка. Моя идея заключается в том, что инструкция является вставкой, чтобы принимать каждое значение из базы данных клиента и вставлять ее в сервер. Как это сделать и как это сделать, чтобы он мог быстро работать. Должен ли я делить каждую запись по таблицам и выбирать все нереплицированные записи из этой таблицы или есть другой способ.Необходима помощь репликации Firebird
Кстати, я использовал метод, в котором каждый запрошенный запрос записывается в файле fild в таблице журнала, но это делает невозможным добавление столбцов в таблицу, поскольку запрос будет неправильным.
Здравствуйте, MBDev, Благодарим вас за ответ. Метод репликации, описанный на сайте IBE, представляет собой точную копию текущего механизма репликации. Проблема заключается в том, что он хранит запрос execu I U D в таблице LOG и затем выполняет его на сервере DB. Таким образом, если вы добавите столбец в таблицу, этот запрос не будет работать. Он скажет, что в этой таблице больше столбцов. То же самое, если я хочу изменить имя поля или удалить его. Вот почему я хочу иметь возможность записывать запись из базы данных cliend и копировать ее на сервер. Мне нужна помощь, особенно для этой схемы. – DrCIH
Добавление coulmn не должно быть проблемой. Кроме того, обновление coulmn возможно, но не рекомендуется менять имена полей. ** Мои подсказки: ** ** 1. ** Просто добавьте необходимые поля в ваш SQL. Например: if (new.FIELD <> null), тогда SQL = SQL || '....'. Оператор Update должен содержать только измененные поля и идентификатор. ** 2. ** После выполнения метаинформации добавьте ваш SQL в таблицу операций репликации. Например, такие SQL, как «ALTER TABLE ....». Этот метод позволяет передавать мета-изменения в правильном порядке. ** 3. ** Избегайте удаления таблиц и полей. –
** 4. ** Постарайтесь, чтобы ваши клиенты синхронизировались. Иногда эта цель является реальной проблемой, но она делает мета-изменения простыми. –