Through some tinkering I found that I simply had to pull the
<sql:SqlDatabase> outside of the Component tag, leaving everything else as
I originally had it.
Here is how I did it in case someone needs to know:
<Fragment>
<Binary Id="CreateUpsizingDatabase" SourceFile="SqlScripts/00A_Create
Database DC.sql" />
<util:User Id="SQLUser" Name="[SQLUSER]" Password="[PASSWORD]" />
<sql:SqlDatabase Id="SqlDatabase" Database="[SQLDATABASE]"
Server="[SQLSERVER]"
User="SQLUser" />
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="SqlComponent"
Guid="15CCE46E-8EA5-42CA-80C5-AC3DB30A9716">
<sql:SqlScript Id="CreateDatabases" SqlDb="SqlDatabase"
ExecuteOnInstall="yes"
BinaryKey="CreateUpsizingDatabase" />
<CreateFolder/>
</Component>
</DirectoryRef>
</Fragment>
Brian
If you can't explain it simply, you don't understand it well enough. -
Albert Einstein
On Tue, Oct 14, 2014 at 1:02 PM, Brian Enderle <[email protected]> wrote:
> Thanks, I see that specifying under a Component forces the install. I
> have removed the component tag and am now trying to call it like so:
>
> <Fragment>
> <Binary Id="CreateUpsizingDatabase" SourceFile="SqlScripts/00A_Create
> Database DC.sql" />
>
> <util:User Id="SQLUser" Name="[SQLUSER]" Password="[PASSWORD]" />
> <sql:SqlDatabase Id="SqlDatabase" Database="[SQLDATABASE]"
> Server="[SQLSERVER]"
> User="SQLUser" >
> <sql:SqlScript Id="CreateDatabases" ExecuteOnInstall="yes"
> BinaryKey="CreateUpsizingDatabase" />
> </sql:SqlDatabase>
>
> </Fragment>
>
> But doing this results in the following error when i try to build the
> project:
>
> Error 410 The sql:SqlScript element cannot be specified unless the
> element has a Component as an ancestor. A sql:SqlScript that does not have
> a Component ancestor is not installed.
>
> Unfortunately all the examples I can find on this subject show the
> SqlDatabase under a Component tag so I am not sure what I am doing wrong
> here.
>
> Brian
>
> If you can't explain it simply, you don't understand it well enough. -
> Albert Einstein
>
> On Tue, Oct 14, 2014 at 11:44 AM, Rob Mensching <[email protected]> wrote:
>
>> http://wixtoolset.org/documentation/manual/v3/xsd/sql/sqldatabase.html
>>
>> Nesting SqlDatabase under a Component element will result in a
>> SqlDatabase being installed to the machine as the package is
>> installed.Nesting SqlDatabase under Product, Fragment, or Module results in
>> a database "locator" record being created in the SqlDatabase table. This
>> means that the database itself is neither installed nor uninstalled by the
>> MSI package. It does make the database available for referencing from a
>> SqlString or SqlScript record. This allows MSI to install SqlScripts or
>> SqlStrings to already existing databases on the machine. The install will
>> fail if the database does not exist in these cases.
>>
>>
>> _____________________________________________________________
>> Short replies here. Complete answers over there:
>> http://www.firegiant.com/
>>
>>
>>
>> -----Original Message-----
>> From: Brian Enderle [mailto:[email protected]]
>> Sent: Tuesday, October 14, 2014 7:33 AM
>> To: WiX Users
>> Subject: [WiX-users] Running SQL script without creating a database
>>
>> I have a script file that creates a couple of databases. I am trying to
>> run this script from WiX as follows (parameters captured from GUI):
>>
>> <Fragment>
>> <Binary Id="CreateUpsizingDatabase"
>> SourceFile="SqlScripts/00A_Create Database DC.sql" />
>>
>> <util:User Id="SQLUser" Name="[SQLUSER]" Password="[PASSWORD]" />
>>
>> <DirectoryRef Id="INSTALLFOLDER">
>> <Component Id="SqlComponent"
>> Guid="15CCE46E-8EA5-42CA-80C5-AC3DB30A9716">
>> <sql:SqlDatabase Id="SqlDatabase" Database="[SQLDATABASE]"
>> Server="[SQLSERVER]"
>> CreateOnInstall="yes"
>> DropOnUninstall="no" User="SQLUser"
>> ContinueOnError="no" />
>> <sql:SqlScript Id="CreateDatabases" SqlDb="SqlDatabase"
>> ExecuteOnInstall="yes"
>> BinaryKey="CreateUpsizingDatabase" />
>> <CreateFolder/>
>> </Component>
>> </DirectoryRef>
>>
>> </Fragment>
>>
>> When I run this WiX wants to create a database for me using the
>> parameters specified. Is there a way to NOT create the database and still
>> run the
>> script? I tried specifying an existing database but got an error. I
>> also
>> set 'CreateOnInstall' & 'DropOnUninstall' to NO but got a build error
>> that "one of the following attributes has to be specified" (I assume this
>> means one must be set to YES).
>>
>>
>> Brian
>>
>> If you can't explain it simply, you don't understand it well enough. -
>> Albert Einstein
>>
>>
>> ------------------------------------------------------------------------------
>> Comprehensive Server Monitoring with Site24x7.
>> Monitor 10 servers for $9/Month.
>> Get alerted through email, SMS, voice calls or mobile push notifications.
>> Take corrective actions from your mobile device.
>> http://p.sf.net/sfu/Zoho
>> _______________________________________________
>> WiX-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
>
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users