I'm a little confused on the desired outcome. You're detaching the database on uninstall, instead of dropping it (which would delete the files)... You're also trying to drop the database elsewhere while the connection context is mapped to the database you're trying to drop, which won't work (you need to USE another database before you try to drop it).
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of silence8212 Sent: Thursday, August 14, 2008 10:05 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Attach a database Hi Tim, thanks for a code example, I allowed to use this example in my scenario and it works perfect, but it doesn't delete database files and directory when uninstall. I want to delete database files after uninstall. This is code: ... <Directory Id="Data" Name="Data"> <Component Id="DemoDbComponent" Guid="c57c91e1-d185-49c1-91f9-fc41a26298a3"> <CreateFolder> <Permission User="Administrators" GenericAll="yes" /> <Permission User="NT AUTHORITY\NetworkService" GenericAll="yes" /> <Permission User="Everyone" GenericAll="yes" /> </CreateFolder> <File Id="DemoMDF" Name="Demo.mdf" Source="Demo.mdf" KeyPath="yes"/> <sql:SqlString Sequence="1" SqlDb="DB1" ExecuteOnUninstall="yes" Id="DropUserId" SQL="USE [\[][DBNAME][\]];DROP LOGIN [USERIDVALUE];DROP USER [USERIDVALUE]" ContinueOnError="no"/> <sql:SqlString Sequence="2" SqlDb="DB1" ExecuteOnUninstall="yes" Id="DetachDb" SQL="sp_detach_db [\[][DBNAME][\]], true, false" ContinueOnError="yes"/> <sql:SqlString Sequence="3" SqlDb="DB1" RollbackOnInstall="yes" Id="RollbackDb" SQL="USE [\[][DBNAME][\]];DROP LOGIN [USERIDVALUE];DROP USER [USERIDVALUE];DROP DATABASE [\[][DBNAME][\]]" ContinueOnError="no"/> <sql:SqlString Sequence="4" SqlDb="DB1" ExecuteOnInstall="yes" Id="AttachDb" SQL="CREATE DATABASE [\[][DBNAME][\]] ON (FILENAME=N'[#DemoMDF]') FOR ATTACH" ContinueOnError="no"/> <sql:SqlString Sequence="5" SqlDb="DB1" ExecuteOnInstall="yes" Id="CreateUserId" SQL="IF NOT EXISTS ( SELECT * FROM sys.server_principals WHERE name = N'[USERIDVALUE]' ) CREATE LOGIN [USERIDVALUE] WITH PASSWORD='[PWDVALUE]', DEFAULT_DATABASE=[DBNAME], CHECK_POLICY=OFF;USE [DBNAME];IF EXISTS(SELECT name FROM sys.sysusers WHERE name=N'[USERIDVALUE]')DROP USER [USERIDVALUE];CREATE USER [USERIDVALUE];EXEC sp_addrolemember db_owner, [USERIDVALUE];" ContinueOnError="no"/> </Component> </Directory> ... <Fragment> <sql:SqlDatabase Id="DB1" Database="master" Server='[SQLSERVER]' ></sql:SqlDatabase> </Fragment> ... When I uninstall, everything(files, directories) is deleted, but this one directory(Data) and database files(demo.mdf/ldf) are not deleted. In the msi uninstall log are no information, which can help me find out, why this files are not deleted. thanks Tim Fisher wrote: > > Yes, you're right it does. Ok, your suggestions worked. Now my SQL > scripts run correctly. Thank you! > > One thing to note is that if I tried to use ExecuteOnInstall in the > same element with a RollbackOnUninstall, then it doesn't get executed > at all (undocumented). > > Anyway I have a new problem, during uninstall. Is there a way to > install these files normally, but leave them alone on uninstall? > (Since they may now contain user data.) > > Here's my code now: > > <Directory Id="DbDataDir" Name="DATA"> > <Component Id="CmpntBaselineDb" > Guid="c57c91e1-d185-49c1-91f9-fc41a26298a3"> > <File Id="MDF" Name="Baseline.mdf" Source="Baseline.mdf" > KeyPath="yes" > /> > <File Id="LDF" Name="Baseline_log.ldf" > Source="Baseline_log.ldf" /> > <sql:SqlString Sequence="1" SqlDb="DB1" ExecuteOnUninstall="yes" > Id="DropUserId" SQL="USE [\[][DBNAME][\]];DROP LOGIN > [USERIDVALUE];DROP USER [USERIDVALUE]" ContinueOnError ="yes" /> > <sql:SqlString Sequence="2" SqlDb="DB1" ExecuteOnUninstall="yes" > Id="DetachDb" SQL="sp_detach_db [\[][DBNAME][\]], true, false" > ContinueOnError="yes" /> > <sql:SqlString Sequence="3" SqlDb="DB1" RollbackOnInstall="yes" > Id="RollbackDb" SQL="USE [\[][DBNAME][\]];DROP LOGIN > [USERIDVALUE];DROP USER [USERIDVALUE];DROP DATABASE [\[][DBNAME][\]]" > ContinueOnError="yes" /> > <sql:SqlString Sequence="4" SqlDb="DB1" ExecuteOnInstall="yes" > Id="AttachDb" SQL="CREATE DATABASE [\[][DBNAME][\]] ON > (FILENAME=N'[#MDF]') FOR ATTACH" ContinueOnError="yes" /> > <sql:SqlString Sequence="5" SqlDb="DB1" ExecuteOnInstall="yes" > Id="CreateUserId" SQL="IF NOT EXISTS ( SELECT * FROM > sys.server_principals WHERE name = N'[USERIDVALUE]' ) CREATE LOGIN > [USERIDVALUE] WITH PASSWORD='[PWDVALUE]', DEFAULT_DATABASE=[DBNAME], > CHECK_POLICY=OFF;USE [DBNAME];IF EXISTS(SELECT name FROM sys.sysusers > WHERE name=N'[USERIDVALUE]')DROP USER [USERIDVALUE];CREATE USER > [USERIDVALUE];EXEC sp_addrolemember db_owner, [USERIDVALUE];" > ContinueOnError="yes" /> > </Component> > </Directory> > > Tim > > On Fri, Jun 13, 2008 at 2:55 PM, Rob Mensching > <[EMAIL PROTECTED]> wrote: >> We're working on getting the WiX v3 documentation up there. However, >> every download of the WiX toolset includes an up to date (as much as we >> have it) version of the WiX.chm. That should contain all the >> information... >> > > ------------------------------------------------------------------------- > 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 > > -- View this message in context: http://n2.nabble.com/Attach-a-database-tp712370p724565.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users