AnswerYou can choose to let the installing user pick an
SQL Server to connect to, from the available Microsoft SQL Servers on
the network. Advanced Installer can automatically browse the network to
discover any SQL Server (instances) online. Launch the "Browse SQL Servers"
wizard from the SQL toolbar and follow the instructions.
Add the Advanced Installer "SQLConnectionDlg"
to the dialogs tree.
You can use this functionality with any other dialog of your choice,
or you can customize the Advanced Installer built-in dialog.
Browse Result (output)Advanced Installer dumps the result of the browse operation (the SQL
Servers list) in the following locations: - Any ComboBox control that has the property
SqlServerBrowseComboBox associated with
it.
- Any ListBox control that has the property
SqlServerBrowseListBox associated with
it.
- Advanced Installer "SQLConnectionDlg": you can replace the
Edit control (ServerEdit) with a
ComboBox control that has the same
SERVER_PROP property attached to it.
- A flat, comma separated list of SQL Servers (names
only) will be dumped into the
SqlServerBrowseOutput property. You can use
this value if you wish to do any custom processing
of the servers list.
For ComboBox and ListBox controls,
the output format will be as follows: - Item text: ServerName (Server's
Description) - when using Windows Network Manager
API, or
ServerName\InstanceName;Clustered:No;Version:9.00.3042.00
- when using ODBC Driver Manager (The item text could
be reduced to just the server name, if the remote machine did not
provide any additional information.)
- Item value: ServerName
(always)
Browse MethodAdvanced Installer supports two methods for listing the SQL Servers from
a network: - Enumerate SQL Servers in the primary domain using
Windows Network Manager API (NetServerEnum).
- Enumerate SQL Server instances on the network using the
ODBC Driver Manager (SQLBrowseConnect).
The browse method is stored in the
SqlServerBrowseMethod property according to
these values: - 1 - Windows Network Manager API
- 2 - ODBC Driver Manager
ODBC Driver Manager enumerates SQL Server
instances using a network broadcast (UDP port 1434).
This means it will not always be able to return a conclusive or
complete list of SQL Server instances because:
- UDP port 1434 might be blocked by a firewall;
- Instances that are not up and running do not respond to the
discovery broadcast;
- Instances might respond after the timeout, which will exclude
there response from the list;
- Instances might not be listening on the correct protocol, so
will never receive the discovery broadcast;
- The HideInstance flag might be set for some
instances;
- Network infrastructure, especially routers, might limit the
effect/visibility of the broadcast, since most routers are
configured not to relay broadcast requests to the other side of
the router;
However, browsing the network using ODBC Driver
Manager functionality can return more information about
servers that have SQL Server Browser service
running. For example:
ServerName\InstanceName;Clustered:No;Version:9.00.3042.00 You can also suppress the "Please Wait..." message box shown by
the SQL Server browse operation.
Connection TimeoutYou can specify a connection timeout (in
seconds) for the browse operation. The default is
60 seconds and the timeout value is stored in the
SqlConnectionTimeout property. A "Connection Timeout" can be set only when using ODBC
Driver Manager to browse the network, and has no effect
when enumerating SQL Servers with Windows Network Manager
API.
|