3 Stimmen

Liste der verfügbaren Server in der SQL-Servergruppe abrufen

Wie kann ich die Liste der verfügbaren SQL-Server in einer SQL-Servergruppe extrahieren? Ich plane, diese Liste in ein Kombinationsfeld in VB.NET einzufügen.

5voto

Ben Hoffstein Punkte 99969

Die einzige Möglichkeit, die ich kannte, war über die Befehlszeile:

osql -L

Aber ich habe den folgenden Artikel gefunden, der Ihr spezielles Ziel zu lösen scheint, indem er eine Combobox füllt:

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

5voto

Chris Tybur Punkte 1545

Wenn Sie nicht an SQL SMO gebunden sein wollten, was das ist, was Bens Artikel verwenden, können Sie so vorgehen, um alle SQL-Server in Ihrem Netzwerk zu ermitteln:

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

En SqlDataSourceEnumerator Klasse ist gut, weil sie Ihnen die SQL-Server-Erkennung direkt aus dem 2.0-Framework heraus ermöglicht.

0voto

Jiminy Punkte 605

In C# habe ich Aufrufe an odbc32.dll verwendet

Zum Beispiel:

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

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

Die Dokumentation für diese Funktion finden Sie unter MSDN

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X