cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
KrisVanherck
Level 6

SQLBrowse empty

I upgraded a InstallScript MSI project from InstallShield 12 to 2010, now the SQLBrowse dialog is empty (no sql servers shown). Tested on 2 different machines on which i know there are running servers.

I created a new empty project in 2010, added a sql script and put the SQLBrowse dialog in the OnFirstUIBefore and it is also empty.

The upgraded project uses a filtered list (logging below), but even if the filtered list system doesn't work the new empty project should have shown servers.

So what changed between these versions :confused: Am i missing something in the project or should i be looking at the machines (firewall, antivirus,..) Strangely the InstallShield 12 projects have no problem populating the SQLBrowse dialog and are showing the servers correctly.

[CODE]MSI (c) (D8!94) [17:12:32:734]: PROPERTY CHANGE: Adding IS_SQLSERVER_INITIALIZED property. Its value is '1'.
Action ended 17:12:32: ISSQLServerInitialize. Return value 1.
MSI (c) (D8:0C) [17:12:32:750]: Doing action: ISSQLServerFilteredList
Action 17:12:32: ISSQLServerFilteredList.
Action start 17:12:32: ISSQLServerFilteredList.
MSI (c) (D8:0C) [17:12:32:750]: Invoking remote custom action. DLL: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\MSI1FE.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) (D8!C4) [17:12:32:812]: 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.
MSI (c) (D8!C4) [17:12:32:828]: PROPERTY CHANGE: Adding IS_SQLSERVER_FILTERED_FLATLIST property. Its value is '(local)\AGENTEL,DSQUERY'.
1: CSQLServerList::PopulateListBoxOrComboBox: Populating the IS_SQLSERVER_SERVER ComboBox.
MSI (c) (D8!C4) [17:12:32:828]: Note: 1: 2262 2: ComboBox 3: -2147287038
1: CSQLServerList::DoSQLServerList() ends.
Action ended 17:12:32: ISSQLServerFilteredList. Return value 1.
[/CODE]
Labels (1)
0 Kudos

(3) Replies
hidenori
Level 17

Can you follow the steps below and see if the problem is reproduced?
[LIST=1]
  • Create a new InstallScript MSI project in IS 2010.
  • Add a connection in the SQL Scritps view.
  • Build and run the setp.
  • Click the Browse button the next to the Server combo box.
  • Observe the SQLBrowse dialog.
  • 0 Kudos
    KrisVanherck
    Level 6

    We found the issue: it was in initializing the SQL.

    The old project used this:
    		//-- Standard init() for SQL --
    //SQLRTInitialize( SUPPORTDIR ^ "SQLRT.ini");
    //-- init() for SQL in case of MSI --
    sDLL = SUPPORTDIR ^ "ISSQLSRV.DLL";
    nResult = StreamFileFromBinary( ISMSI_HANDLE, "ISSQLSRV.DLL", sDLL );
    UseDLL( sDLL );
    //--


    we replaced this with:
    SQLRTInitialize2();


    And it works now.
    0 Kudos
    Marwan
    Level 7

    Thanks for posting back the solution Kris.
    0 Kudos