Поделиться через


Метод Database.Merge

Метод Merge объекта Database объединяет эталонную базу данных с базовой базой данных.

Синтаксис

Database.Merge(
  reference,
  errorTable
)

Параметры

reference

Требуемый объект Database для объединения с базой данных.

errorTable

Необязательное имя таблицы, содержащей имена таблиц, содержащих конфликты слияния, количество конфликтующих строк в таблице и ссылку на таблицу с конфликт слияния.

Возвращаемое значение

Этот метод не возвращает значение.

Комментарии

Функцию MsiDatabaseMerge и метод Merge объекта Database нельзя использовать для слияния модуля, включенного в пакет установки. Их не следует использовать для объединения модулей слияния в пакет установщика Windows. Чтобы включить модуль слияния в пакет установки, авторы пакетов установки должны следовать рекомендациям, описанным в разделе Применение модулей слияния .

Метод Merge не копирует встроенные cab-файлы или внедренные преобразования из эталонной базы данных в целевую базу данных. Внедренные потоки данных, перечисленные в двоичной таблице или таблице значков , копируются из эталонной базы данных в целевую базу данных. Хранилища, внедренные в эталонную базу данных, не копируются в целевую базу данных.

Если таблица не указана, общее сообщение об ошибке содержит количество таблиц, содержащих конфликты слияния. Можно передать любую таблицу, но все остальные столбцы должны иметь значение NULL, так как операция обновления таблицы ошибок завершается сбоем, если столбец не допускает значения NULL. Только что созданную таблицу также можно передать, так как метод Merge автоматически создает столбцы, которые он использует при обнаружении конфликтов слияния. Для представления конфликтов слияния используются два столбца. Первый столбец — это имя таблицы и столбец первичного ключа. Второй столбец — это количество строк этой таблицы, в которых произошли сбои слияния.

Если таблицы с одинаковым именем в обеих базах данных не совпадают по количеству первичных ключей, типам столбцов, количеству столбцов или именам столбцов, метод Merge завершается сбоем и отправляет сообщение об ошибке с указанием того, что произошло.

Чтобы сохранить таблицу Error, обработчик ошибок должен зафиксировать базу данных, к которой принадлежит таблица Error. Однако эту фиксацию следует выполнять после использования третьего столбца для получения ссылок на те таблицы, в которых произошли конфликты слияния.

В случае сбоя метода можно получить расширенные сведения об ошибке с помощью метода LastErrorRecord .

Требования

Требование Значение
Версия
Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или Установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP
DLL
Msi.dll
IID
IID_IDatabase определяется как 000C109D-0000-0000-C000-00000000000046