cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sthoeum
Level 3

IS_SQLSERVER_SERVER Combobox not populating with SQL Server 2008 instance names

I have this issue with Installshield 2008 but then I tried Installshield 2010 to see if it would have fix it but it dit not.

The problem is : when using the combobox linked to the property IS_SQLSERVER_SERVER (like the one in SQLLogin dialog), it does not populated it with my sql server 2008 instance.

I have one machine with only one sql server 2008 express installed with a named instance called SQLEXPRESSTEST.

I am able to reproduce the bug not only with my project but also with an empty test basic msi project.


Steps to reproduce the bug:

- Create a new basic msi

- Go To SQL Scripts view and create a new SQL Connection (so that you will have the MSSQLServer row in the ISSQLDBMetada table and also you will get your SQLLogin dialog where the problem occurs)

- Build your setup.

-Install your setup on a machine that ONLY has a SQL SERVER 2008 named instance.

- Click next, next , until you arrive at the SQLLogin dialog page, then you will have an empty combobox. Here I am expecting to see my SQL SERVER 2008 instance. Because the IS_SQLSERVER_SERVER is supposed to show your local database instance.

I have checked the log file:

Action start 17:08:41: ISSQLServerFilteredList.
MSI (c) (70:58) : Invoking remote custom action. DLL: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\MSI47.tmp, Entrypoint: ISSQLServerFilteredList
1: CSQLServerList:: DoSQLServerList() begins.
1: CSQLServerList:: DoSQLServerList: Checking if the ComboBox table exists.
1: CSQLServerList:: ClearListBoxOrComboBox: Deleting items from the IS_SQLSERVER_SERVER ComboBox.
MSI (c) (70!88) : Note: 1: 2262 2: ComboBox 3: -2147287038
1: CSQLServerList:: DoSQLServerList: Loading database server metadata from the ISSQLDBMetaData table.
1: CSQLServerList:: DoSQLServerList: Loading ODBC APIs from ODBC32.dll.
1: CSQLServerList:: DoSQLServerList: Retrieving database server names on the network, and registered on the local machine.
1: CSQLServerBrowse:: GetServerList() begins.
1: CSQLServerBrowse:: GetServerList: Attempting to retrieve server names for Microsoft SQL Server.
1: CSQLServerBrowse:: GetServerList: Retrieving local instance names of Microsoft SQL Server from registry.
1: CSQLServerBrowse:: GetServerList: Retrieving alias names of Microsoft SQL Server from registry.
1: CSQLServerBrowse:: GetServerList: Retrieving server names registered in system DSNs.
1: CSQLServerBrowse:: GetServerList: Retrieving server names registered in user DSNs.
1: CSQLServerBrowse:: GetServerList() ends.
1: CSQLServerList:: PopulateListBoxOrComboBox: Populating the IS_SQLSERVER_SERVER ComboBox.
MSI (c) (70!88) : Note: 1: 2262 2: ComboBox 3: -2147287038
1: CSQLServerList:: DoSQLServerList() ends.
Action ended 17:08:41: ISSQLServerFilteredList. Return value 1.




I have checked my registry under HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL to see if my instance name is there , and it is. ( I am assuming this is the place Installshield looks for the local database, please correct me if I'm wrong)


I have also tried changing the ISSQLDBMetadata row like Hidenori always suggest (Change the AdoDriverName column from "sqlolddb" to "sqlncli".
Change the DsnODBCName column from "{SQL Server}" to "{SQL Native Client}"
) Still doesnt work.


Is this an Installshield bug?
Labels (1)
0 Kudos
(8) Replies
hidenori
Level 17

Is your instance a 64-bit Microsoft SQL Server 2008 Express? InstallShield lists only local 32-bit Microsoft SQL Server instances at this time.
0 Kudos
sthoeum
Level 3

Yes it is 😞 .. so any upcoming fix for this in the future or work around?
0 Kudos
sthoeum
Level 3

Do you think I could script it to go search for the named instances under HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL but then and populate the combobox with it.. but what about the default instances? Can you explain how the runtime works for that?
0 Kudos
hidenori
Level 17

I attached the InstallShield 2010 SP1 hotfix for this issue to this post. In order to apply the fix, you need to copy ISSQLSrv.dll to the C:\Program Files\InstallShield\2010\Redist\Language Independent\i386 folder, and SQLRT.dll to C:\Program Files\InstallShield\2010\Redist\Compressed Files\Language Independent\Intel 32 folder, and then rebuild your setup. Note that it is an unofficial fix as it is not fully tested by our QA team. So I would strongly recommend that you make a backup copy of the original files before applying it. Also, I filed the work order #IOA-000054153 so that it will be incorporated into the future versions of InstallShield.

Regards.
0 Kudos
sthoeum
Level 3

Can I apply this to Installshield 2008 also??
Where is the attachment?

If I can apply this hotfix to Installshield 2008 I will be very happy

Thanks
0 Kudos
hidenori
Level 17

The hotfix is now attached to the post.

Thank you.
0 Kudos
hidenori
Level 17

Unfortunately, we do not have plans on creating an InstallShield 2008 hotfix for this issue. Applying this InstallShield 2010 hotfix to InstallShield 2008 may work, but it is not recommended. Flexera Software provides no technical support for that case.

Regards.
0 Kudos
VinayMS
Level 3

Hello All,

I have created on basic msi setup project,There I am facing issue to setting the default target server name.When I arrive at the SQLLogin dialog page, then you will have an empty combobox. Here I am expecting to see my SQL SERVER instance. Because the IS_SQLSERVER_SERVER is supposed to show your local database instance.

I have also tried changing the ISSQLDBMetadata row suggested by Hidenori(from diffrent post) (Change the AdoDriverName column from "sqlolddb" to "sqlncli".
Change the DsnODBCName column from "{SQL Server}" to "{SQL Native Client}"
) Still doesnt work. and also I have addeed the sql native client as prerequisites.

I am using installshield 2011. And SQL express 2005.

Can anyone please help to set the default server name to local database instace name.

Help me as soon as possible.

Vinay MS
0 Kudos