用VB如何在局域網內自動尋找所有的SQL服務器?300分相送!!!

解决方案 »

  1.   

    http://www.china-askpro.com/msg49/qa28.shtml
      

  2.   

    相当不错和完整的程序。利用API获得当前网络中的所有计算机名称以及获得当前可用的服务器、SQL服务器、RAS服务器的名称、属性等http://www.applevb.com/sourcecode/getallserveronnet.zip
      

  3.   

    '引入 SQLDMO 库
    '搜索SQL Server服务器,并且枚举可以使用的合乎规则的数据库On Error GoTo errEnum    Dim oApplication As New SQLDMO.Application
        Dim oSQLServerGroup As SQLDMO.ServerGroup
        Dim oRegisteredServer As SQLDMO.RegisteredServer
        Dim oSQLServer As New SQLDMO.SQLServer
        Dim oDatabase As SQLDMO.Database
            
        '枚举SQL Server服务器
        For Each oSQLServerGroup In oApplication.ServerGroups
            For Each oRegisteredServer In oSQLServerGroup.RegisteredServers
                CmbServer.AddItem oRegisteredServer.Name
            Next
        Next
        
        If CmbServer.ListCount = 0 Then
            CmbServer.AddItem "192.168.0.1"
        End If
        
        CmbServer.Text = CmbServer.List(0)
        
        '枚举缺省的数据库
        '先连接
        oSQLServer.Connect CmbServer.Text, "sa", "password"
        
        For Each oDatabase In oSQLServer.Databases
            If InStr(1, oDatabase.Name, "DB") <> 0 Then
                CmbDatabase.AddItem Right(oDatabase.Name, 4) & "年数据库"
            End If
        Next
        
        If CmbDatabase.ListCount = 0 Then
            CmbDatabase.AddItem "没有可选数据库"
        End If
        
        CmbDatabase.Text = CmbDatabase.List(0)
        
        Exit Sub
        
    errEnum:
            CmbServer.Clear
            CmbDatabase.Clear
            MsgBox Err.Description 
            Exit Sub
      

  4.   

    //////http://www.applevb.com/sourcecode/getallserveronnet.zip///////
    打不开,可能因为防盗链功能。
      

  5.   

    'SQLDMO提供对sql的全面的操作。
    'SQL帮助里面有详细 介绍 和 实例(还是vb的)。
    'SQLDMO。dll不能在98下注册。