用你的程序判断 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLSERVER\setup 注册表

解决方案 »

  1.   


    判断注册表:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLSERVER\setup
      

  2.   

    --这个当然是要在程序中判断,以VB中的判断为例:
    'VB中的例子'*************************************************************************
    '**函 数 名:f_Get_ServerStatus
    '**输    入: sServerName   要查看状态的SQL服务器名
    '**        : sUser         登陆的用户
    '**        : sPassword     登陆密码
    '**输    出:无
    '**功能描述:得到SQL服务器的状态
    '**
    '**调用模块:'引用: Microsoft SQLDMO Object Library
    '**作    者: 邹建
    '**日    期: 2003年11月12日
    Function f_Get_ServerStatus(Optional ByVal sServerName$ = "", Optional ByVal sUser$ = "", Optional ByVal sPassword$ = "")
        Dim iSQLServer As SQLDMO.SQLServer
        Dim iRe$
        
        On Error GoTo lb_Err
        Set iSQLServer = New SQLDMO.SQLServer
        With iSQLServer
            If sUser = "" Then
                .LoginSecure = True
                .Connect sServerName
            Else
                .Connect sServerName, sUser, sPassword
            End If
            Select Case .Status
                Case SQLDMOSvc_Continuing
                    iRe = "正在连接"
                Case SQLDMOSvc_Paused
                    iRe = "暂停"
                Case SQLDMOSvc_Pausing
                    iRe = "正在暂停"
                Case SQLDMOSvc_Running
                    iRe = "运行"
                Case SQLDMOSvc_Starting
                    iRe = "正在启动"
                Case SQLDMOSvc_Stopped
                    iRe = "停止"
                Case SQLDMOSvc_Stopping
                    iRe = "正在停止"
                Case SQLDMOSvc_Unknown
                    iRe = "未知"
            End Select
            .DisConnect
        End With
        
        GoTo lb_Exit
        
    lb_Err:
        MsgBox "错误:" & Error, 48
        iRe = "错误"
    lb_Exit:
        If Not (iSQLServer Is Nothing) Then Set iSQLServer = Nothing
        f_Get_ServerStatus = iRe
    End Function
      

  3.   


    '*************************************************************************
    '**函 数 名:s_Start_Server
    '**输    入: sServerName   要启动的SQL服务器名
    '**        : sUser         登陆的用户
    '**        : sPassword     登陆密码
    '**输    出:无
    '**功能描述:启动SQL服务
    '**
    '**调用模块:'引用: Microsoft SQLDMO Object Library
    '**作    者: 邹建
    '**日    期: 2003年11月12日
    '*************************************************************************
    Sub s_Start_Server(Optional ByVal sServerName$ = "", Optional ByVal sUser$ = "", Optional ByVal sPassword$ = "")
        Dim iSQLServer As SQLDMO.SQLServer
        
        On Error GoTo lb_Err
        Set iSQLServer = New SQLDMO.SQLServer
        With iSQLServer
            If sUser = "" Then
                .LoginSecure = True
                .Start True, sServerName
            Else
                .Start True, sServerName, sUser, sPassword
            End If
            .DisConnect
        End With
        
        GoTo lb_Exit
        
    lb_Err:
        MsgBox "错误:" & Error, 48
        
    lb_Exit:
        If Not (iSQLServer Is Nothing) Then Set iSQLServer = Nothing
    End Sub
      

  4.   

    '利用上面的两个过程就可以实现你的目的.先用f_Get_ServerStatus取得SQL服务器的状态,如果是未知的状态,那就表明没有安装SQL
    停止的状态,就用第二个过程启动它.
      

  5.   

    我是要在IS里判断。
    本来考虑连一下MASTER数据库,不过觉得比较麻烦。
    判断注册表,我想问:如果卸栽了,那个注册表项是否还在?
      

  6.   

    f_Get_ServerStatus是哪里的函数?
    我不知所云啊。
      

  7.   

    启动SQL服务我已经知道SQL里的命令,不需要VB了。
    声明:我不会在IS里去调用VB的程序的,那我还不如不用IS,用程序做个打包算了。