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]: [EMAIL PROTECTED]: Fri, 15 Dec 2006 11:31:40
-0800Subject: 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:56To: Rob MenschingSubject: 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]: [EMAIL PROTECTED]; [EMAIL PROTECTED]: Tue, 12 Dec 2006
08:20:44 -0800Subject: RE: [WiX-users] SQL Script
What version of the WiX toolset are you using?
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dhaval
PatelSent: Monday, December 11, 2006 17:18To: [EMAIL PROTECTED]: [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!
Check the weather nationwide with MSN Search Try it now!
_________________________________________________________________
Get the Live.com Holiday Page for recipes, gift-giving ideas, and more.
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