cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
WindChaser
Level 4

Determine system locale for SQLServer 2005 installation

It seems that Microsoft needs different settings in the cmdline arguments for the installation of SQLServer 2005 for different system locales. For an English locale system, the cmdline is:

cmdline=" /qb ADDLOCAL=SQL_Engine,SQL_Data_Files SECURITYMODE=SQL INSTANCENAME=MyInstance SAPWD=MyPwd SQLAccount=<NT AUTHORITY\SYSTEM> DISABLENETWORKPROTOCOLS=0 SQLAUTOSTART=1 requiresmsiengine=1"

But for a French locale system for instance, the cmdline must instead include SQLAccount=<Autorite NT\SYSTEM> (scripting is not my forte so I am guessing that < and > mean quote unquote).

So how can I determine what the system locale is from scripting without using any wizards? BTW, just to be clear, the system locale is the language of the Windows license and has nothing to do with the user-selected locale in the Regional Settings of Windows.

Thanks!
Labels (1)
0 Kudos
(3) Replies
WindChaser
Level 4

The prerequisite script provided for SQL Server 2005 is only valid for systems which have an English (United States) locale. Installing SQL Server 2005 in a multilingual environment requires that the locale be determined within the prerequisite script using nested conditions. How do I do this? I have no prerequisite script editor and no examples to base myself on.

Thanks.
0 Kudos
heathlmorris
Level 4

We have a few different Installs that have different settings for different languages. We use this command line with an ini file for the settings. SQLEXPR.exe /qn /settings "\SQLSettings.ini"

This just happens to be for German.
SQLSETTINGS.ini can be created in notepad saved as.ini

[Options]
ADDLOCAL=ALL
INSTANCENAME=YOURINSTANCE
SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
SQLACCOUNT="NT-AUTORITÄT\SYSTEM"

This is english
[Options]
ADDLOCAL=ALL
INSTANCENAME=YOURINSTANCE
SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
SQLACCOUNT="NT AUTHORITY\SYSTEM"

notice that the only real setting I am changing is the SQLACCOUNT to fit that language.

You will then need to determine which language the OS is and then determine from that which ini file to use or edit the ini file to fit the language you are trying to match. I find searching google fpr the "NT AUTHORITY\SYSTEM" for the specific Os's will help you determine which needs to be installed.
0 Kudos
WindChaser
Level 4

Thanks heathlmorris.

I've used your technique before by compiling an executable which calls SQLEXPR.exe along with the template ini file. But I have no idea how to do the same thing within the script of the InstallShield prerequisite such as :





Type="16"
Comparison="2"
Path="[ProgramFilesFolder]Microsoft SQL Server\90\COM"
FileName="sqlresld90.dll"
ReturnValue="2005.90.3042.0"
/>

Type="1"
Comparison="2"
Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MYInstance"
FileName=""
ReturnValue=""
/>



LocalFile="<ISProductFolder>\SetupPrerequisites\SQL2005Express\SQLEXPR.EXE"
CheckSum="2819cb82396a5e17c8ee4bf0d9d9f108"
FileSize="0,58064896"
/>


cmdline=" /qb ADDLOCAL=SQL_Engine,SQL_Data_Files SECURITYMODE=SQL INSTANCENAME=MYInstance SAPWD=MyStrongPwd DISABLENETWORKPROTOCOLS=0 SQLAccount="NT AUTHORITY\SYSTEM" SQLAUTOSTART=1 requiresmsiengine=1"
/>

Description="This installs for English System locales only."
/>
0 Kudos