[wix-users] Conditional SQL execution
Habib Salim
habib at hsalim.com
Wed May 3 17:56:43 PDT 2017
<reposting as Plains Text>
Hi,
I have a two questions that I hope I can address together.
I have a custom dialog to get a capture user input for properties like
SERVER_NAME
1. How do I conditionally execute this if checkbox evaluates to true?
there does not seem to be an InstallCondition.
I see a Condition Element that can be used in a fragment but I don't quite
know how to use it.
2. Ideally, the controls below the checkbox would be greyed out or
invisible if checkbox is false, but that does not seem possible.
Contents of .wxs posted below
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util ="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:sql ="http://schemas.microsoft.com/wix/SqlExtension" >
<Fragment>
<Property Id="CREATE_DB" Value="false" />
<Property Id="SERVER_NAME" Value="." />
<Property Id="INSTANCE_NAME" Value="REPORTING" />
<Property Id="USER_NAME" Value="sa" />
<Property Id="PASSWORD" Value="#" />
<Property Id="DB_NAME" Value="CONTROL" />
<Property Id="DEMODB_NAME" Value="DemoDB" />
<UI>
<Dialog Id="MyCustomDlg" Width="370" Height="350" Title="Server and
Database Settings">
<Control Id="Next" Type="PushButton" X="236" Y="300" Width="56"
Height="17" Default="yes" Text="!(loc.WixUINext)" />
<Control Id="Back" Type="PushButton" X="180" Y="300" Width="56"
Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="300" Width="56"
Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<!--<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370"
Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />-->
<Control Id="Title" Type="Text" X="15" Y="6" Width="200"
Height="15" Transparent="yes" NoPrefix="yes" Text="Pivot Views Database
Setup" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280"
Height="15" Transparent="yes" NoPrefix="yes" Text="Where should we install
the PivotViews database?" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370"
Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370"
Height="0" />
<Control Id="InstallCheckBoxLabel" Type="CheckBox" Text="Create
Database?:" X="15" Y="60" Width="100" Height="17"
Property="CREATE_DB" CheckBoxValue="0" Default="no" />
<Control Id="ServerNameLabel" Type="Text" X="15" Y="80"
Width="100" Height="17" Text="SQL Server Name:" />
<Control Id="ServerNameTextbox" Type="Edit" X="120" Y="80"
Width="200" Height="17"
Property="SERVER_NAME" ToolTip="Enter Server Name Here"
/>
<Control Id="InstanceNameLabel" Type="Text" X="15" Y="100"
Width="100" Height="17" Text="Instance Name:" />
<Control Id="InstanceNameTextbox" Type="Edit" X="120" Y="100"
Width="200" Height="17"
Property="INSTANCE_NAME" ToolTip="Enter Instance Name if
applicable" />
<Control Id="UserNameLabel" Type="Text" X="15" Y="120"
Width="120" Height="17" Text="User name:"/>
<Control Id="UserNameTextbox" Type="Edit" X="120" Y="120"
Width="200" Height="17"
Property="USER_NAME" ToolTip="User ID of sa or equivalent
user." />
<Control Id="UserPasswordLabel" Type="Text" Text="Password:"
X="15" Y="140" Width="100" Height="17" />
<Control Id="UserPasswordTextbox" Type="Edit" X="120" Y="140"
Width="200" Height="17" Password="yes"
Property="PASSWORD" ToolTip="Enter a password" />
<Control Id="DBNameLabel" Type="Text" Text="Database name:" X="15"
Y="160" Width="100" Height="17" />
<Control Id="DBNameTextbox" Type="Edit" X="120" Y="160"
Width="200" Height="17"
Property="DB_NAME" ToolTip="This is the name of the
Configuration Control database. Change it only if you must." />
<Control Id="BottomLine" Type="Line" X="0" Y="280" Width="370"
Height="0" />
</Dialog>
</UI>
</Fragment>
<Fragment>
<Binary Id="Install_ControlObjects"
SourceFile="SQLData\install_PVObjects.sql" />
<ComponentGroup Id="DatabaseComponentGrp" Directory="INSTALLLFOLDER">
<Component Id ="cmpUser" Guid="*" KeyPath="yes">
<util:User Id="utilUser" Name="[USER_NAME]" Password="[PASSWORD]"
/>
</Component>
<Component Id="cmpCreateDb" Guid="*" KeyPath="yes">
<Condition>[CREATE_DB]</Condition>
<sql:SqlDatabase Id="SqlDatabase_ControlDb"
Server="[SERVER_NAME]"
Instance ="[INSTANCE_NAME]"
Database="[DB_NAME]"
User = "utilUser"
CreateOnInstall="yes"
DropOnUninstall="no"
ContinueOnError="yes" >
<sql:SqlScript Id="cmpCreateControlObjects"
BinaryKey ="Install_ControlObjects"
ExecuteOnInstall="yes"
ContinueOnError="yes" />
</sql:SqlDatabase>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
More information about the wix-users
mailing list