I've seen plenty of incredibly complex SQL Scripts.  What version of the WiX 
toolset are you using?  There is a known bug in SQL Scripts fixed very recently 
that was causing random failures.

From: Dhaval Patel [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 19, 2006 21:10
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] SQL Script


I tried saving the SQL file as ANSI, UTF-8, Unicode, etc. The SQL script does 
get read in the memory, but the msi still blows up while executing the script. 
I keep running into the Error Executing Script bug - which I think is still 
open. So I think it is safe to assume at this point that I should probably stay 
away from WIX if I want to execute complex SQL queries?
________________________________
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Date: Fri, 15 Dec 2006 11:31:40 -0800
Subject: RE: [WiX-users] SQL Script

Have you tried saving the file as Unicode?  Notepad (on XP) can do this when 
you do Save As->Encoding drop down box.



From: Dhaval Patel [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 12, 2006 14:56
To: Rob Mensching
Subject: RE: [WiX-users] SQL Script



I am using 2.0.4611.0. Mike Dimmick had the following tip. I am not sure if 
that indeed is the issue. I skimmed over the links that he sent me, but most of 
that stuff is Hebrew to me in the first link :). The content of the second link 
did raise an eyebrow, because I think I did create my .sql file in NotePad2 (or 
TextPad). Possibly you can throw some light on the issue. I can forward you the 
.sql file I am using. Thanks.

You probably have a UTF-16 script without a leading Byte Order Mark (U+FEFF, 
the byte sequence 0xFF 0xFE for UTF-16 little-endian). Without the BOM, the SQL 
custom action assumes that the script is ANSI and converts using 
MultiByteToWideChar. If the data is actually UTF-16, the script will simply 
appear to be a 'C' followed by a NULL byte.



Just a thought here, but should we really be using the end system's ANSI 
codepage to convert to UTF-16 here (the code has CP_ACP)? If you install on a 
system with a different codepage from that the file was generated on, you could 
get unwanted results.



I think it would be better for the compiler to do the conversion before storing 
the script to the Binary table. That would allow us to drop the UTF-16 
detection and conversion code in the custom action. Other thoughts: use the 
codepage of the MSI database itself (looks quite difficult: 
http://msdn2.microsoft.com/en-gb/library/aa368277.aspx), or extend the schema 
to allow the appropriate codepage to be recorded. This would probably be a good 
idea even if the compiler is extended to convert the script to UTF-16 first. 
Alternatively we could just drop support for non-UTF-16 scripts, but that's a 
little unfriendly.



One idea I really wouldn't recommend is using the IsTextUnicode function: see 
http://blogs.msdn.com/michkap/archive/2006/06/14/631016.aspx.



--

Mike Dimmick



________________________________

From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; wix-users@lists.sourceforge.net
Date: Tue, 12 Dec 2006 08:20:44 -0800
Subject: RE: [WiX-users] SQL Script

What version of the WiX toolset are you using?



From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dhaval Patel
Sent: Monday, December 11, 2006 17:18
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] SQL Script



I am a WIX newbie and I think I have been able to grasp most of the 
functionality via trial and error over the last week or so. Nevertheless, 
making this SQL script execute has been driving me nuts. I am hoping one of you 
experienced folks will be able to help me out. I have attached an image of the 
error I receive upon installation and here is the exact text of the error:

"Failed to execute SQL string, error detail: Could not find stored procedure 
'C'., SQL Key: Script SQL string: C"

The very first line I had in my SQL script is: CREATE TABLE [dbo].[DataMerge]

Before that I had the line: USE TABLE [MergeFiles] and I received this error - 
"Failed to execute SQL string, error detail: Could not find stored procedure 
'U'., SQL Key: Script SQL string: U"

It seems that no matter what I put in the my sql script, it errors out on the 
first character. Here is my WIX code:
<Component Id ='SqlDatabase' DiskId='1' 
Guid='7FE20B5C-FF37-4618-8D6F-3D04BD66E845'>
    <SqlDatabase Id='Sql' ContinueOnError='no' CreateOnInstall='yes' 
Database='MergeNist'
        CreateOnReinstall='no' DropOnUninstall='yes' Instance='[SQLINSTANCE]' 
DropOnReinstall='no'
        User='MySqlUser' Server='[SQLSERVER]' >
        <SqlScript Id='Script' BinaryKey='CreateSql' ExecuteOnInstall='yes' />
    </SqlDatabase>
</Component>

<!-- Path to Sql script -->
<Binary Id='CreateSql' SourceFile='Database.sql' />

Let me know if I am missing anything. It'd be thrilling for my entire team if I 
get this to work. I am able to create a virtual directory, a Windows user, 
install a service, and various assmeblies to the GAC. This is the only thing 
that's not working. Thanks in advance!

________________________________

All-in-one security and maintenance for your PC.  Get a free 90-day trial! 
Learn more!<http://www.windowsonecare.com/purchase/trial.aspx?sc_cid=wl_wlmail>



________________________________

Check the weather nationwide with MSN Search Try it 
now!<http://search.msn.com/results.aspx?q=weather&FORM=WLMTAG>

________________________________
Get the Live.com Holiday Page for recipes, gift-giving ideas, and more. Check 
it out!<www.live.com/?addtemplate=holiday>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to