PDA

View Full Version : Upgrade from 10.x to 10.5 breaks SQL Server List



PeterVA
11-08-2004, 03:09 PM
When launching a 10.x file, a prompt indicates that the file must be upgraded to v10.5. Upon completion of the upgrade, I found that the SQL Server functions to list SQL Servers to a listbox is broken.

If I use the v10.x file, it works fine. A visual inspection of the two shows that the entries in the Behavior section of the Dialog Editor are identical.

Does anyone have any idea what needs to be done to fix this?

Peter

hidenori
11-09-2004, 01:30 PM
If you create a new project, do you see the problem?

Hidenori Yamanishi
Macrovision - Software Technologies Group

PeterVA
11-09-2004, 04:46 PM
Actually, yes I do. It happens both in upgraded projects and new alike.

Peter

hidenori
11-09-2004, 06:02 PM
I tried InstallShield 10.5 RTM, but I don't have any problem with the SQL Server list dialog on my machine. By the way, what problem are you seeing with the dialog? Does the the listbox show a empty list?

Thank you.
Hidenori

mikebsr
11-10-2004, 04:25 PM
This happened to me also. To fix it, I had to create a dummy sql script under Server Configuration->SQL Scripts that did nothing and attach it to a feature. The list worked then.

hidenori
11-10-2004, 04:50 PM
InstallShield removes all SQL stuff if you have no scripts to execute in the SQL Scripts view. That is by design. I'm guessing you manually add the SQLLogin dialog to your project. If this is the case, you need to add the ISSQLServerList and ISSQLServerFilteredList custom actions manually, too. Please look at the InstallUISequence table and the ControlEvent table in a project that successfully populates the list to see how you should add those actions.

Hope this helps.
Hidenori

Stefan Krueger
11-11-2004, 05:31 AM
There are occasions where you add a SQL connection without script, if you only need to verify the conncection and credentials, but don't want to execute a script.

ThatDennis
11-11-2004, 10:39 AM
If this is the case, you need to add the ISSQLServerList and ISSQLServerFilteredList custom actions manually, too.

Hidenori, could I convince you to be a bit more specific about how to go about this? :)

hidenori
11-11-2004, 01:30 PM
The ISSQLServerList action popluates the complete SQL Servers list to the SQL Browse list box. The ISSQLServerFilteredList populates the filtered SQL Servers list to SQL Server combo box. Those actions need to be invoked before the SQLLogin dialog and SQLBrowse dialog are displayed. Here is an example how to add the actions manually:

1. Go to the Binary table in Direct Editor.
2. Create an entry:
* Name: ISSQLSRV.DLL, ISBuildSourcePath:<ISProductFolder>\redist\language independent\i386\issqlsrv.dll
3. Go to the CustomAction table.
4. Create an entry:
* Action: ISSQLServerFilteredList, Type: 1, Source: ISSQLSRV.DLL, Target: ISSQLServerFilteredList
5. Go to InstallUISequence table.
6. Sequence ISSQLServerFilteredList action before InstallWelcome.

Also I submitted the work order #1-ZF6VE so that InstallShield will add SQL built-in items when you have a SQL connetion without scripts.

Thank you.
Hidenori

ThatDennis
11-11-2004, 02:25 PM
Thanks Hidenori, I'll try your suggested solution first thing in the morning. I'll let you know how it works out, and perhaps I'll bug you for some more help. So far you've been great.

ThatDennis
11-12-2004, 08:49 AM
I noticed that all of the changes you suggest are the same as the changes made by adding a SQL connection and script in the SQL Scripts view.

Sadly, it doesn't seem to work. It still doesn't populate the drop down, nor the window following the browse button. If I add a random SQL connection and script to the SQL Scripts view, it'll add the SQL Login screen to the InstallWelcome sequence. I have a custom SQL login screen after this, which whose server-list doesn't get populated while the automatically added SQL login screen in the INstallWelcome sequence does. I must be missing something, like assigning the results of ISSQLServerFilteredList() to the dialog. This is getting annoying. :confused:

hidenori
11-12-2004, 11:43 AM
InstallShield built-in SQL custom actions are designed to work with InstallShield SQLLogin diaogs and InstallShield SQL tables. If you have your own custom dialog and you want to use the actions to populate your SQL server list box, you need to make sure that you set the right property that InstallShield uses to your dropdown combo box and list box.

In your list box control, you need to specify the IS_SQLSERVER_LIST property. In your dropdown combo box control, you need to specify one of the properties that you specify in the Server column of the ISSQLConnetion table. The InstallShield SQLLogin dialog is designed to verify the connections listed in the ISSQLConnection table.

Hope this helps.
Hidenori

PeterVA
11-15-2004, 10:21 AM
Why did this change from 10.x to 10.5? It seems wierd to have to create a dummy script in order to populate the box.

I'll try the suggestion made and see if it works.

Thanks!

Peter

PeterVA
11-18-2004, 10:06 AM
Ok, none of the suggestions worked. Back to the drawing board.

hidenori
11-18-2004, 12:23 PM
Could you send me a sample project that reproduces your problem at hyamanishi@macrovision.com? The project should only have your custom dialog, a SQL connection and a script.

Thank you.

PeterVA
11-18-2004, 01:05 PM
I'll create a new one and send it to you. I've already removed all actions so that I could move forward with my project. This is very repeatable though, so I shouldn't have a problem recreating it.

Thanks!

Peter

PeterVA
11-19-2004, 03:17 PM
I got it! When I followed your instructions, I created the SQL Connection, but not a dummy script. Once I added a script, the IS_SQLSERVER_SERVER property populated correctly and I was able to configure my list again.

Thanks for your help!

Peter



Could you send me a sample project that reproduces your problem at hyamanishi@macrovision.com? The project should only have your custom dialog, a SQL connection and a script.

Thank you.