用sqldemo,参考
http://www.csdn.net/expert/topic/506/506076.xml

解决方案 »

  1.   

    http://www.dapha.net/有个代码,自己找找去吧。
      

  2.   

    下面代码中的
    Private Const SV_TYPE_SQLSERVER           As Long = &H4
    代表 SQL Server
    ==================================================================
    Enumerating Servers and Machines in a Domain with Version InfoTo a form add a command button (Command1), a combo (Combo1) and list (List1). Add the following to the form:
    Private Const MAX_PREFERRED_LENGTH As Long = -1
    Private Const NERR_SUCCESS As Long = 0&
    Private Const ERROR_MORE_DATA As Long = 234&Private Const SV_TYPE_WORKSTATION         As Long = &H1
    Private Const SV_TYPE_SERVER              As Long = &H2
    Private Const SV_TYPE_SQLSERVER           As Long = &H4
    Private Const SV_TYPE_DOMAIN_CTRL         As Long = &H8
    Private Const SV_TYPE_DOMAIN_BAKCTRL      As Long = &H10
    Private Const SV_TYPE_TIME_SOURCE         As Long = &H20
    Private Const SV_TYPE_AFP                 As Long = &H40
    Private Const SV_TYPE_NOVELL              As Long = &H80
    Private Const SV_TYPE_DOMAIN_MEMBER       As Long = &H100
    Private Const SV_TYPE_PRINTQ_SERVER       As Long = &H200
    Private Const SV_TYPE_DIALIN_SERVER       As Long = &H400
    Private Const SV_TYPE_XENIX_SERVER        As Long = &H800
    Private Const SV_TYPE_SERVER_UNIX         As Long = SV_TYPE_XENIX_SERVER
    Private Const SV_TYPE_NT                  As Long = &H1000
    Private Const SV_TYPE_WFW                 As Long = &H2000
    Private Const SV_TYPE_SERVER_MFPN         As Long = &H4000
    Private Const SV_TYPE_SERVER_NT           As Long = &H8000
    Private Const SV_TYPE_POTENTIAL_BROWSER   As Long = &H10000
    Private Const SV_TYPE_BACKUP_BROWSER      As Long = &H20000
    Private Const SV_TYPE_MASTER_BROWSER      As Long = &H40000
    Private Const SV_TYPE_DOMAIN_MASTER       As Long = &H80000
    Private Const SV_TYPE_SERVER_OSF          As Long = &H100000
    Private Const SV_TYPE_SERVER_VMS          As Long = &H200000
    Private Const SV_TYPE_WINDOWS             As Long = &H400000  'Windows95 +
    Private Const SV_TYPE_DFS                 As Long = &H800000  'Root of a DFS tree
    Private Const SV_TYPE_CLUSTER_NT          As Long = &H1000000 'NT Cluster
    Private Const SV_TYPE_TERMINALSERVER      As Long = &H2000000 'Terminal Server
    Private Const SV_TYPE_DCE                 As Long = &H10000000'IBM DSS
    Private Const SV_TYPE_ALTERNATE_XPORT     As Long = &H20000000'return alternate transport
    Private Const SV_TYPE_LOCAL_LIST_ONLY     As Long = &H40000000'return local only
    Private Const SV_TYPE_DOMAIN_ENUM         As Long = &H80000000
    Private Const SV_TYPE_ALL                 As Long = &HFFFFFFFFPrivate Const SV_PLATFORM_ID_OS2 As Long = 400
    Private Const SV_PLATFORM_ID_NT  As Long = 500Private Const PLATFORM_ID_DOS    As Long = 300
    Private Const PLATFORM_ID_OS2    As Long = 400
    Private Const PLATFORM_ID_NT     As Long = 500
    Private Const PLATFORM_ID_OSF    As Long = 600
    Private Const PLATFORM_ID_VMS    As Long = 700'Mask applied to svX_version_major in
    'order to obtain the major version number
    Private Const MAJOR_VERSION_MASK As Long = &HFPrivate Type SERVER_INFO_101
      sv101_platform_id  As Long
      sv101_name As Long
      sv101_version_major As Long
      sv101_version_minor As Long
      sv101_type As Long
      sv101_comment As Long
    End TypePrivate Declare Function NetServerEnum Lib "netapi32" _
      (ByVal servername As Long, _
       ByVal level As Long, _
       buf As Any, _
       ByVal prefmaxlen As Long, _
       entriesread As Long, _
       totalentries As Long, _
       ByVal servertype As Long, _
       ByVal domain As Long, _
       resume_handle As Long) As LongPrivate Declare Function NetApiBufferFree Lib "netapi32" _
       (ByVal Buffer As Long) As LongPrivate Declare Sub CopyMemory Lib "kernel32" _
       Alias "RtlMoveMemory" _
      (pTo As Any, uFrom As Any, _
       ByVal lSize As Long)
       
    Private Declare Function lstrlenW Lib "kernel32" _
      (ByVal lpString As Long) As LongPrivate Sub Form_Load()   Command1.Caption = "Net Server Enum"
       
       With Combo1
          .AddItem "All servers"
          .ItemData(.NewIndex) = SV_TYPE_ALL
          
          'os-specific
          .AddItem "NT/2000 workstations or servers"
          .ItemData(.NewIndex) = SV_TYPE_NT
          
          .AddItem "Windows 95 or later"
          .ItemData(.NewIndex) = SV_TYPE_WINDOWS
          
          .AddItem "Servers running Windows for Workgroups"
          .ItemData(.NewIndex) = SV_TYPE_WFW
          
          .AddItem "Servers running Unix"
          .ItemData(.NewIndex) = SV_TYPE_SERVER_UNIX
          
          'function-specific
          .AddItem "LAN Manager workstations"
          .ItemData(.NewIndex) = SV_TYPE_WORKSTATION
          
          .AddItem "LAN Manager servers"
          .ItemData(.NewIndex) = SV_TYPE_SERVER
          
          .AddItem "NT/2000 servers not domain controller"
          .ItemData(.NewIndex) = SV_TYPE_SERVER_NT
          
          .AddItem "Servers maintained by the browser"
          .ItemData(.NewIndex) = SV_TYPE_LOCAL_LIST_ONLY
          
          .AddItem "Primary Domain (ignore version info)"
          .ItemData(.NewIndex) = SV_TYPE_DOMAIN_ENUM
          
          .ListIndex = 0
          
      End With
         
    End SubPrivate Sub Combo1_Click()   Call GetServers(vbNullString)
       
    End Sub
    Private Sub Command1_Click()   Call GetServers(vbNullString)
     
    End Sub
    Private Function GetServers(sDomain As String) As Long  'lists all servers of the specified type
      'that are visible in a domain.
       Dim bufptr          As Long
       Dim dwEntriesread   As Long
       Dim dwTotalentries  As Long
       Dim dwResumehandle  As Long
       Dim dwServertype    As Long
       Dim se101           As SERVER_INFO_101
       Dim success         As Long
       Dim nStructSize     As Long
       Dim cnt             As Long   nStructSize = LenB(se101)
       dwServertype = Combo1.ItemData(Combo1.ListIndex)
       
       List1.Clear
          success = NetServerEnum(0&, _
                               101, _
                               bufptr, _
                               MAX_PREFERRED_LENGTH, _
                               dwEntriesread, _
                               dwTotalentries, _
                               dwServertype, _
                               0&, _
                               dwResumehandle)  'if all goes well
       If success = NERR_SUCCESS And _
          success <> ERROR_MORE_DATA Then
          
        'loop through the returned data, adding each
        'machine to the list
          For cnt = 0 To dwEntriesread - 1
             
            'get one chunk of data and cast
            'into an SERVER_INFO_101 struct
            'in order to add the name to a list
             CopyMemory se101, ByVal bufptr + (nStructSize * cnt), nStructSize
                
             List1.AddItem GetPointerToByteStringW(se101.sv101_name) & vbTab & _
                           GetPlatformString(se101.sv101_platform_id) & " " & _
                          (se101.sv101_version_major And MAJOR_VERSION_MASK) & "." & _
                           se101.sv101_version_minor
             
          Next
          
       End If
       
      'clean up, regardless of success
       Call NetApiBufferFree(bufptr)
       
       GetServers = dwEntriesreadEnd Function
    Private Function GetPlatformString(ByVal dwPlatformID As Long) As String   Select Case dwPlatformID
          Case PLATFORM_ID_DOS: GetPlatformString = "DOS"
          Case PLATFORM_ID_OS2: GetPlatformString = "Windows"
          Case PLATFORM_ID_NT:  GetPlatformString = "Windows NT"
          Case PLATFORM_ID_OSF: GetPlatformString = "OSF"
          Case PLATFORM_ID_VMS: GetPlatformString = "VMS"
       End Select
       
    End Function
    Private Function GetPointerToByteStringW(ByVal dwData As Long) As String
      
       Dim tmp() As Byte
       Dim tmplen As Long
       
       If dwData <> 0 Then
       
          tmplen = lstrlenW(dwData) * 2
          
          If tmplen <> 0 Then
          
             ReDim tmp(0 To (tmplen - 1)) As Byte
             CopyMemory tmp(0), ByVal dwData, tmplen
             GetPointerToByteStringW = tmp
             
         End If
         
       End If
        
    End Function
      

  3.   

    http://www.applevb.com/sourcecode/getallserveronnet.zip
    利用API获得当前网络中的所有计算机名称以及获得当前可用的服务器、SQL服务器、RAS服务器的名称、属性等。在Win2K下运行,Win9X下部分功能不支持。
      

  4.   

    Dim osqlserverdmoapp As New SQLDMO.Application
     For i = 1 To osqlserverdmoapp.ListAvailableSQLServers.Count
       Debug.Print osqlserverdmoapp.ListAvailableSQLServers.Item(1)
     Next i
      Set osqlserverdmoapp = Nothing
      

  5.   

    sonicdater(发呆呆(我答问题*不吵架*因为我呆)) 的代码 太高深了。
    不错不错。 
    收 !!
      

  6.   

    因为需要,我想做一个控件,然后加进网页用于访问SQL Server,可是我是初学者,不知道该怎么办,上面的代码适合吗?如果不适合,我该怎么做呢?
      

  7.   

    空格 全变成 问号了, csdn 怎么会事儿呀?