Merge Two Databases
The VBScript file WiMerge.vbs is provided in the Windows SDK Components for Windows Installer Developers. This sample script merges one Windows Installer database into another database. For more information, see Merges and Transforms.
The MsiDatabaseMerge function and the Merge method of the Database object cannot be used to merge a module included in the installation package. They should not be used to merge Merge Modules into a Windows Installer package. To include a merge module in an installation package, authors of installation packages should follow the guidelines that are described in Applying Merge Modules topic.
The sample demonstrates the use of the following:
- OpenDatabase method (Installer Object)
- LastErrorRecord method of the Installer object
- OpenView method
- Merge method
- Commit method of the Database object
- Fetch method
- View object
- StringData property of the Record object
You must have the CScript.exe or WScript.exe version of Windows Script Host to use this sample. To use CScript.exe to run this sample, type a command line at the command prompt using the following syntax. Help is displayed if the first argument is /? or if too few arguments are specified. To redirect the output to a file, end the command line with VBS > [path to file]. The sample returns a value of 0 for success, 1 if help is invoked, and 2 if the script fails.
cscript WiMerge.vbs [path to database][path to imported database][table name]
Specify the path to the Windows Installer database that is receiving the merge. Specify the path to the database being imported into the first. You may specify an optional name for a table to hold the merge errors. If no table name is specified, the installer uses the name _MergeErrors and drops the table after displaying the contents.
For additional scripting examples, see Windows Installer Scripting Examples. For sample utilities that do not require Windows Script Host, see Windows Installer Development Tools.