[wix-users] Conditional SQL execution

Farrukh Waheed farrukh1 at gmail.com
Thu May 4 22:08:28 PDT 2017


I think you may need to use SetProperty element to set up the property for
other controls.
And setting up a control's property can also be achieved like this,
(disabling a control as in your case)

            <Control Type="PushButton" Id="btn_Cancel" Width="56"
Height="17" X="165" Y="112" Text="!(loc.WixUICancel)">
<Condition Action="disable"><![CDATA[(CREATE_DB <>
"yes")]]></Condition>            </Control>



On 4 May 2017 at 23:12, Habib Salim <habib at hsalim.com> wrote:

> Hi Farrukh,
>
> I tried  Disabled= "[CREATE_DB]" - this property is declared in .wxs (see
> below)
> The error is: The Control/@Disabled attribute's value, '[CREATE_DB]', is
> not a legal yes/no value.  The only legal values are 'no' and 'yes'.
>
> Unlike other attributes, this one does seem to allow deriving from a
> property.
>
>
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf
> Of Farrukh Waheed
> Sent: Thursday, May 04, 2017 1:39 AM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] Conditional SQL execution
>
> Ideally, the checkbox should be setting up some property like
> EnableControl to values "yes" or "no and rest of the controls should be
> using this property in their  Disable attribute, which takes "yes" or "no"
> to Enable or Disable controls.
>
> On 4 May 2017 at 05:56, Habib Salim <habib at hsalim.com> wrote:
>
> > <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>
> >
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>



More information about the wix-users mailing list