When I do it that way, I get a compile-time "Error      1       When nested 
under
a component, the sql:SqlDatabase element must have one of the
following attributes specified: CreateOnInstall, CreateOnUninstall,
DropOnInstall or DropOnUninstall."

Is the v3 WixSqlExtension ready, or should I be using something else to do this?

Tim


On Thu, Jun 5, 2008 at 8:45 PM, Rob Mensching
<[EMAIL PROTECTED]> wrote:
> At the top of the Fragment:
>
>        <SqlDatabase Id="LocalMasterDB" Server="(local)" Database="master" />
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tim Fisher
> Sent: Thursday, June 05, 2008 16:53
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Attach a database
>
> Can you show the definition for your LocalMasterDB element?
>
> Tim
>
>
> On Thu, Jun 5, 2008 at 1:35 PM, Rob Mensching
> <[EMAIL PROTECTED]> wrote:
>> I have something that looks a lot like this (in WiX v2):
>>
>>
>>                    <File Id="Baseline.mdf" Name="$(var.ShortPrefix).mdf" 
>> LongName="$(var.LongDBName)_data.mdf" 
>> Source="SourceDir\$(var.LongDBName)Baseline.mdf" />
>>                    <File Id="Baseline.ldf" Name="$(var.ShortPrefix).ldf" 
>> LongName="$(var.LongDBName)_log.ldf" 
>> Source="SourceDir\$(var.LongDBName)Baseline.ldf" />
>>
>>                    <RemoveFile Id="CleanupDb" 
>> Directory="$(var.PublicLongDBName)_FOLDER" Name="$(var.ShortPrefix)*.*" 
>> LongName="$(var.LongDBName)*.*" On="uninstall" />
>>
>>                    <SqlString Id="RollbackDropRoleMember" 
>> SqlDb="LocalMasterDB" RollbackOnUninstall="yes" Sequence="1"
>>                               SQL="EXEC 
>> $(var.LongDBName).dbo.sp_addrolemember 'db_owner', '$(var.ServiceAccount)'" 
>> />
>>                    <SqlString Id="DropRoleMember" SqlDb="LocalMasterDB" 
>> ExecuteOnUninstall="yes" Sequence="2" ContinueOnError="yes"
>>                               SQL="EXEC 
>> $(var.LongDBName).dbo.sp_droprolemember 'db_owner', '$(var.ServiceAccount)'" 
>> />
>>
>>                    <SqlString Id="RollbackDropLoginPermissions" 
>> SqlDb="LocalMasterDB" RollbackOnUninstall="yes" Sequence="3"
>>                               SQL="EXEC master.dbo.sp_grantlogin 
>> '$(var.ServiceAccount)'" />
>>                    <SqlString Id="DropLoginPermissions" 
>> SqlDb="LocalMasterDB" ExecuteOnUninstall="yes" Sequence="4" 
>> ContinueOnError="yes"
>>                               SQL="EXEC master.dbo.sp_droplogin 
>> '$(var.ServiceAccount)'" />
>>
>>                    <SqlString Id="RollbackDetach" SqlDb="LocalMasterDB" 
>> RollbackOnUninstall="yes" ContinueOnError="yes" Sequence="5"
>>                               SQL="CREATE DATABASE $(var.LongDBName) ON 
>> (FILENAME=N'[#Baseline.mdf]'), (FILENAME=N'[#Baseline.ldf]') FOR ATTACH" />
>>                    <SqlString Id="OfflineDatabase" SqlDb="LocalMasterDB" 
>> ExecuteOnUninstall="yes" ContinueOnError="yes" Sequence="6"
>>                               SQL="ALTER DATABASE $(var.LongDBName) SET 
>> OFFLINE WITH ROLLBACK IMMEDIATE" />
>>                    <SqlString Id="Detach" SqlDb="LocalMasterDB" 
>> ExecuteOnUninstall="yes" ContinueOnError="yes" Sequence="7"
>>                               SQL="EXEC sp_detach_db 
>> @dbname='$(var.LongDBName)', @skipchecks='true'" />
>>
>>                    <SqlString Id="Attach" SqlDb="LocalMasterDB" 
>> ExecuteOnInstall="yes" Sequence="8"
>>                               SQL="CREATE DATABASE $(var.LongDBName) ON 
>> (FILENAME=N'[#Baseline.mdf]'), (FILENAME=N'[#Baseline.ldf]') FOR ATTACH" />
>>                    <SqlString Id="RollbackAttach" SqlDb="LocalMasterDB" 
>> RollbackOnInstall="yes" ContinueOnError="yes" Sequence="9"
>>                               SQL="EXEC sp_detach_db 
>> @dbname='$(var.LongDBName)', @skipchecks='true'" />
>>
>>                    <SqlString Id="RollbackGrantLoginPermissions" 
>> SqlDb="LocalMasterDB" RollbackOnInstall="yes" Sequence="10" 
>> ContinueOnError="yes"
>>                               SQL="EXEC master.dbo.sp_droplogin 
>> '$(var.ServiceAccount)'" />
>>                    <SqlString Id="GrantLoginPermissions" 
>> SqlDb="LocalMasterDB" ExecuteOnInstall="yes" Sequence="11"
>>                               SQL="IF NOT EXISTS (SELECT * FROM 
>> sys.server_principals WHERE name = N'$(var.ServiceAccount)') EXEC 
>> master.dbo.sp_grantlogin '$(var.ServiceAccount)'; USE $(var.LongDBName); IF 
>> EXISTS(SELECT name FROM sys.sysusers WHERE name=N'$(var.ServiceAccount)') 
>> EXEC $(var.LongDBName).dbo.sp_dropuser '$(var.ServiceAccount)'; EXEC 
>> $(var.LongDBName).dbo.sp_grantdbaccess '$(var.ServiceAccount)'; IF 
>> EXISTS(SELECT name FROM sys.sysusers WHERE name=N'ms') EXEC 
>> $(var.LongDBName).dbo.sp_dropuser 'ms'; EXEC 
>> $(var.LongDBName).dbo.sp_grantdbaccess 'ms'" />
>>
>>                    <SqlString Id="RollbackAddRoleMember" 
>> SqlDb="LocalMasterDB" RollbackOnInstall="yes" Sequence="12" 
>> ContinueOnError="yes"
>>                               SQL="EXEC 
>> $(var.LongDBName).dbo.sp_droprolemember 'db_owner', '$(var.ServiceAccount)'" 
>> />
>>
>>
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tim Fisher
>> Sent: Thursday, June 05, 2008 08:58
>> To: wix-users@lists.sourceforge.net
>> Subject: [WiX-users] Attach a database
>>
>> I'm using WiX 3.0.4130.0 and I'm trying to figure out how to attach a
>> database. I'm getting a runtime error using this method:
>>
>>        <Component Id="Component2" 
>> Guid="c57c91e1-d185-49c1-91f9-fc41a26298a3">
>>                <File Id="MDF" Name="MyDb.mdf" Source="MyDb.mdf" 
>> KeyPath="yes" />
>>                <File Id="LDF" Name="MyDb_log.ldf" Source="MyDb_log.ldf" />
>>                <sql:SqlDatabase Id="DB1" Server="[DBSERVERNAME]"
>> Database="[DBNAME]" DropOnUninstall="yes">
>>                        <sql:SqlString Id="SqlCmd1" ExecuteOnInstall="yes" 
>> SQL="CREATE
>> DATABASE [\[][DBNAME][\]] ON (FILENAME=N'[#MDF]') FOR ATTACH" />
>>                </sql:SqlDatabase>
>>        </Component>
>>
>> The log file looks good, but the error looks like it's trying to
>> access the database before it's been created or something.
>>
>> What am I doing wrong?
>>
>> Tim
>>
>> -------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It's the best place to buy or sell services for
>> just about anything Open Source.
>> http://sourceforge.net/services/buy/index.php
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>> -------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It's the best place to buy or sell services for
>> just about anything Open Source.
>> http://sourceforge.net/services/buy/index.php
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to