Получить список доступных серверов в группе серверов SQL - PullRequest
3 голосов
/ 29 сентября 2008

Как извлечь список доступных серверов SQL в группе серверов SQL? Я планирую поместить этот список в поле со списком в VB.NET.

Ответы [ 3 ]

5 голосов
/ 30 сентября 2008

Если вы не хотите привязываться к SQL SMO, что и используется в статье Бена , вы можете сделать что-то подобное, чтобы обнаружить все SQL-серверы в вашей сети:

Private Sub cmbServer_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbServer.DropDown
    Dim oTable As Data.DataTable
    Dim lstServers As List(Of String)
    Try
        If cmbServer.Items.Count = 0 Then
            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
            oTable = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources

            For Each oRow As DataRow In oTable.Rows
                If oRow("InstanceName").ToString = "" Then
                    cmbServer.Items.Add(oRow("ServerName"))
                Else
                    cmbServer.Items.Add(oRow("ServerName").ToString & "\" & oRow("InstanceName").ToString)
                End If
            Next oRow
        End If
    Catch ex As Exception
        ErrHandler("frmLogin", "cmbServer_DropDown", ex.Source, ex.Message, Ex.InnerException)
    Finally
        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

        If oTable IsNot Nothing Then
            oTable.Dispose()
        End If
    End Try
End Sub

Класс SqlDataSourceEnumerator удобен тем, что предоставляет возможность обнаружения SQL-сервера прямо из инфраструктуры 2.0.

5 голосов
/ 29 сентября 2008

Единственный способ, которым я знал, это использовать командную строку:

osql -L

Но я нашел нижеприведенную статью, которая, кажется, решает вашу конкретную задачу, заполнив поле со списком:

http://www.sqldbatips.com/showarticle.asp?ID=45

0 голосов
/ 29 сентября 2008

В C # я использовал вызовы odbc32.dll

Например:

[DllImport("odbc32.dll", CharSet = CharSet.Ansi)]

private static extern short SQLBrowseConnect(
IntPtr hconn, StringBuilder inString,
short inStringLength, StringBuilder outString, short outStringLength, out short 
outLengthNeeded);

Документация для этой функции включена MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...