在VB中如何判断程序所在的电脑有没有安装SQL SERVER?

解决方案 »

  1.   

    用ADO连接。要是连不上那就是没装:D
      

  2.   

    我是要在客户端连接到其它机器的SQL SERVER(服务器端) ,如果在客户端没有安装SQL SERVER 就屏蔽某些功能,所以要判断在客户端有没有安装SQL SERVER,楼上能不能说的详细些.
      

  3.   

    设置错误陷阱,和二楼一样,使用ADO连接,正常则正确执行,异常则转入错误处理(屏蔽某些功能)
      

  4.   

    同意设置错误陷阱
    On Error GoTo ErrHandler
    Dim conOnlineBank As ADODB.Connection
    Set conOnlineBank = New Connection
    With conOnlineBank
        .CommandTimeout = 5
        .ConnectionString = "User ID=sa;Password=;data source ='127.0.0.1';Initial Catalog=OnlineBanking"
        .Provider = "SQLOLEDB"
        .Open
    End With
    Exit Sub
    ErrHandler:
    If Err.Number = -2147467259 Then
    MsgBox "SQL数据库不存在"
    End If
      

  5.   

    Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Dim ServerName() As String
    Dim Server As String
    Dim I As Long
    Dim j As LongPublic Function SQLServerList(ByRef strServerName() As String, _
                                  Optional ByRef rlngErrNum As Long, _
                                  Optional ByRef rstrErrDescr As String) As Boolean
                                  
       Dim objServerApp As SQLDMO.Application
       Dim objServers As SQLDMO.NameList
       Dim lngServerCount As Long
       On Error GoTo SQLServerListErr
       
       SQLServerList = False
       Set objServerApp = New SQLDMO.Application
       Set objServers = objServerApp.ListAvailableSQLServers
       
       lngServerCount = objServers.Count
       ReDim strServerName(lngServerCount - 1)   
       For I = 1 To lngServerCount   
          strServerName(I - 1) = objServers.Item(I)  
       Next I   
       SQLServerList = True   
       Err.Clear
    SQLServerListErr:
       Set objServers = Nothing
       Set objServerApp = Nothing
       
       rlngErrNum = Err.Number
       rstrErrDescr = Err.Description
    End FunctionPrivate Sub Command1_Click()
        Dim strString As String
        strString = String(255, Chr$(0))
        '得到计算机名
        GetComputerName strString, 255
        strString = Left$(strString, InStr(1, strString, Chr$(0)) - 1)
    Call SQLServerList(ServerName())
    For I = 0 To UBound(ServerName)
        If ServerName(I) = strString Or ServerName(I) = "(local)" Then MsgBox "有"
        Exit Sub
    Next
    End Sub
      

  6.   

    我觉得还是判断注册表比较好,如果SQL SERVER服务没有启动,上面的代码是不行的一般是看看注册表中是否有这项
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup
      

  7.   

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer