Dear Steve,
by "default" any version of MS SQL RTMs included with an IA project, to determine if the this has to be installed, it checks if the default MS SQL instance name (MSSQL$SQLEXPRESS) is running on the target machine.
InstallAware uses two MSIcode scripts to check for and to install your desired technology prerequisite. More specifically these consist on a "checkxxx" and "setupxxxx" scripts (where the "x" characters reflect the name of the specific application Runtime).
More specifically and for what concerns "Microsoft SQL Server Express 2014 sp1, the checksql2014sp1_x86 script includes the following code line to determine if the RTM has to be installed.
Code: Select all
Check Service State for MSSQL$SQLEXPRESS (write result into variable MSSQL2014_X86)
Due of the this and to solve your issue you may use a unique "instance name" to identify your MS Sql installation, for example; MYCUSTOMINSTANCE.
Consequently you may use the approach described by the following steps;
1- replace with your custom instance name, the default instance name used by the "Check Service State" statement in the checksql2014sp1_x86 script.
Note that MS SQL uses the form "MSSQL$" + "INSTANCE_NAME" for the service name that belongs to an instance. So supposing your instance name is "MYCUSTOMINSTANCE", the "Check Service State" statement should be;
Code: Select all
Check Service State for MSSQL$MYCUSTOMINSTANCE (write result into variable MSSQL2014_X86)
Code: Select all
~InstallAware Clipboard Data~
~Check Service~
~{2CF1450E-2C25-4285-9461-C7B749878585}~
~MSSQL$MYCUSTOMINSTANCE~
~~
~MSSQL2014_X86~
2- replace with your custom instance name, the default instance name used to install "Microsoft SQL Server Express 2014 sp1". This is defined with the "MSSQL2014_COMMAND_LINE_X86" variable in the "setupsql2014sp1_x86" script. For example;
Code: Select all
Set Variable MSSQL2014_COMMAND_LINE_X86 to /q /ACTION=Install /FEATURES=SQL,SDK /INSTANCENAME="MYCUSTOMINSTANCE" /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SECURITYMODE=SQL /SAPWD="Sq1S#rv$r"/SQLSVCPASSWORD="Sq1C#ep$q" /SQLSYSADMINACCOUNTS="$SQL_COMPUTER_NAME$\$SQL_USER_NAME$" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IAcceptSQLServerLicenseTerms
Furthermore, I suggest you to have a look at the "Enumerate MS SQL Instances sample" from;
http://www.installaware.com/forums/viewtopic.php?f=2&t=6772.
You may also use the approach described by the above sample, to determine if a specific MS Sql Instance name is available with the target machine.
Hope this helps you.
Regards