VB中如何获取SQL Server服务器名

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4762/4762852.xml?temp=.8139917
      

  2.   

    Option ExplicitPrivate Sub Command1_Click()
     Dim aa As Boolean
     aa = GetLocalSQLServer(cmbServer111) = True
    End Sub'在工程-引用裏面引用:Microsoft SQLDMO Object Library
    Private Sub Form_Load()
    '獲取局域網SQL server伺服器名稱添加到下拉式列示方塊
        Dim dmo As SQLDMO.NameList
        Dim server As New SQLDMO.Application
        Dim i As Long
        Set dmo = server.ListAvailableSQLServers
        For i = 1 To dmo.Count
            ServerName.AddItem dmo(i)
        Next i
        ServerName.ListIndex = ServerName.ListCount - 2
    End Sub
    '引用Microsoft SQLDMO Object Library
    '局域網裏搜索SQL伺服器
    '可以列出局域網內註冊或未註冊的SQL伺服器
    '參數:用於顯示伺服器名的下拉式列示方塊
    Public Function GetLocalSQLServer(ByRef cmbServer As ComboBox) As Boolean
        Dim oSQLServerDMOApp   As SQLDMO.Application
        Dim oServerGroup   As SQLDMO.ServerGroup
        Dim oRegisteredServer   As SQLDMO.RegisteredServer
        Dim i   As Integer, j   As Integer
        Dim namX   As NameList
        Dim blnEquate As Boolean
        
        Screen.MousePointer = 11
        
        Set oSQLServerDMOApp = New SQLDMO.Application
        
        cmbServer.Clear
        '首先顯示的是註冊了的資料庫
        '處理所有伺服器組
        For Each oServerGroup In oSQLServerDMOApp.ServerGroups
            '處理每個註冊了的伺服器
            For Each oRegisteredServer In oServerGroup.RegisteredServers
                '添加每個名字到  combobox
                cmbServer.AddItem oRegisteredServer.Name
            Next
        Next
        Set oRegisteredServer = Nothing
        Set oServerGroup = Nothing    '接下來顯示尚未註冊的資料庫
        Set namX = oSQLServerDMOApp.ListAvailableSQLServers
        For i = 1 To namX.Count
            blnEquate = False
            '檢查該伺服器是否已經被列出來
            For j = 0 To cmbServer.ListCount - 1
                If cmbServer.List(j) = namX.Item(i) Then
                    blnEquate = True
                    Exit For '退出內圈迴圈
                End If
            Next j
            If blnEquate = False Then
                cmbServer.AddItem namX.Item(i)
            End If
        Next i
        
        '顯示第一個伺服器
        If cmbServer.ListCount > 0 Then
            cmbServer.ListIndex = 0
        End If
        
        Set namX = Nothing
        Set oSQLServerDMOApp = Nothing
        
        Screen.MousePointer = 0
    End Function
      

  3.   

    连接上数据库,在MASTER数据库中存的有服务器名字