- status: open --> open-invalid
WIX version to 3719
When devising a SQLDAtabase entry like:
Ok, so we are trying to release this product, but
when building the MSI with:
ConfirmOverwrite='no' ContinueOnError='no'
CreateOnInstall='yes' DropOnReinstall='yes'
CreateOnReinstall='yes'
It turns out setting: SQL_DWLookupDB
DWLookupDB DWLookupDB
SQL_DWLookupDB_datafile SQL_DWLookupDB_logfile
195
After running validation in the MSI:
ICE03 ERROR Value exceeds MaxValue; Table:
SqlDatabase, Column: Attributes, Key(s):
SQL_DWLookupDB
The reason why I was having the below ICE03, is
because, the validation table has
<tableDefinition name="SqlDatabase">
<columnDefinition name="SqlDb"
type="string" length="72" primaryKey="yes"
modularize="column" symbol="yes"
category="identifier"
description="Primary key, non-localized token"/>
<columnDefinition name="Server"
type="string" length="255" nullable="yes"
category="formatted"
description="Primary key, name of server running SQL
Server"/>
<columnDefinition name="Instance"
type="string" length="255" nullable="yes"
category="formatted"
description="Primary key, name of SQL Server
instance"/>
<columnDefinition name="Database"
type="string" length="255"
category="formatted"
description="Primary key, name of database in a SQL
Server"/>
<columnDefinition name="Component_"
type="string" length="72" modularize="column"
nullable="yes"
keyTable="Component"
keyColumn="1" category="identifier"
description="Foreign key, Component used to determine
install state "/>
<columnDefinition name="User_"
type="string" length="72" nullable="yes"
modularize="column"
keyTable="User"
keyColumn="1" category="identifier"
description="Foreign key, User used to log into
database"/>
<columnDefinition name="FileSpec_"
type="string" length="72" nullable="yes"
modularize="column"
keyTable="SqlFileSpec" keyColumn="1"
category="identifier" description="Foreign key
referencing SqlFileSpec."/>
<columnDefinition name="FileSpec_Log"
type="string" length="72" nullable="yes"
modularize="column"
keyTable="SqlFileSpec" keyColumn="1"
category="identifier" description="Foreign key
referencing SqlFileSpec."/>
<columnDefinition name="Attributes"
type="number" length="2" nullable="yes"
minValue="0"
maxValue="127" description="1 == create on install, 2
== drop on uninstall, 4 == continue on error, 8 ==
drop on install, 16 == create on uninstall, 32 ==
confirm update existing table, 64 == create on
reinstall"/>
</tableDefinition>
This comes from
delivery\Dev\wix\src\ext\sca\wixext\Data\tables.xml
If I look at
delivery\Dev\wix\src\ext\sca\wixext\ScaCompilerExtensi
on.cs or sch.a these are the values for the
attributes of SqlDatabase and SqlScript and their
decimal values.
#define SCADB_CREATE_ON_INSTALL 0x00000001 ==>1
#define SCADB_DROP_ON_UNINSTALL 0x00000002 ==>2
#define SCADB_CONTINUE_ON_ERROR 0x00000004 ==>4
#define SCADB_DROP_ON_INSTALL 0x00000008 ==>8
#define SCADB_CREATE_ON_UNINSTALL 0x00000010 ==>16
#define SCADB_CONFIRM_OVERWRITE 0x00000020 ==>32
#define SCADB_CREATE_ON_REINSTALL 0x00000040 ==> 64
#define SCADB_DROP_ON_REINSTALL 0x00000080 ==> 128
#define SCASQL_EXECUTE_ON_INSTALL 0x00000001 ==>1
#define SCASQL_EXECUTE_ON_UNINSTALL 0x00000002 ==>2
#define SCASQL_CONTINUE_ON_ERROR 0x00000004 ==>4
#define SCASQL_ROLLBACK 0x00000008 ==>8
#define SCASQL_EXECUTE_ON_REINSTALL 0x00000010==>16
Thus, if I select all of them to yes, the max value
is, 1+2+4+8+16+32+64+138=255. If I changed the
validation table to maxvalue to this, then my ICE03
is gone.
Also the logic to come up with the SqlScript
attribute seems to be wrong too. In my case I am
choosing:
<SqlScript Id='SQL_ControlFlowDB_mainInstallFile'
ExecuteOnInstall='yes' ExecuteOnReInstall='yes'
RollbackOnInstall='no' RollbackOnUninstall='no'
ContinueOnError='no'>
So this should be 1+16=17, but the value is set to 16