Schema Mismatch caused by a Merge Module |
MAKEMSI defaults to table creation on demand which means that generally only tables that are used are created. In general this is OK, one exception is with some merge modules where a non-standard (or at least different schema) may have been used.
When a merge module is merged its schema is only used if a table needs to be created. The following shows the results after a merge module caused the creation of the "Class" and "TypeLib" tables:
ICE32 ERROR Possible Mis-Aligned Foreign Keys Feature.1 = s32 Class.Feature_ = s38 ICE32 ERROR Possible Mis-Aligned Foreign Keys Feature.1 = s32 TypeLib.Feature_ = s38
MAKEMSI defines a feature to be up to 32 characters while the merge module uses 38 characters. The solution to this is to create the tables before merging the merge module, for example:
<$TableCreate "Class" ExistingOK="Y" DropExisting="N"> <$TableCreate "TypeLib" ExistingOK="Y" DropExisting="N">
The "ExistingOK" and "DropExisting" parameters were added for safety, we are doing this step because the tables don't exist however you may some time in the future add code which may create it and you would not want to lose its contents.