如何检测计算机是否已安装MSSQl并得到其版本号和服务是否启动?

解决方案 »

  1.   


    adoconnection1.connectstring:="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master";
    try
      adoconnection1.open;
      result:=true;
    except
      result:=false;
    end;
      

  2.   

    要使用WinSvc单元,看看帮助和示例吧!
      

  3.   

    var
      lpServiceArgVectors :PChar;
      hscmanager,hService :SC_HANDLE;
      returnstatus :TServiceStatus;
      html :String;
      exeresult :Boolean;
    begin
      Result :=False;
      lpServiceArgVectors:=nil;  //打开service   control   manager   database
      hscmanager:=OpenSCManager(nil,nil,SC_MANAGER_ENUMERATE_SERVICE);  //打开该Service
      hService:=OpenService(hscmanager,'MSSQLSERVER',SERVICE_ALL_ACCESS);
      if(hService<0)   then
      begin
        StatusBar1.Panels[0].Text :='无法访问MSSQLSERVER服务';
        Result :=False;
        exit;
      end;  //查看该Service的状态
      try
        QueryServiceStatus(hService,returnstatus) ;
      except
        StatusBar1.Panels[0].Text :='查看MSSQLSERVER服务失败';
      end;  case returnstatus.dwCurrentState of
        1: StatusBar1.Panels[0].Text :='MSSQLSERVER 已经停止';
        2: StatusBar1.Panels[0].text :='MSSQLSERVER 正在启动';
        3: StatusBar1.Panels[0].text :='MSSQLSERVER 正在停止';
        4: StatusBar1.Panels[0].text :='MSSQLSERVER 正在运行';
        5: StatusBar1.Panels[0].text :='MSSQLSERVER 继续运行中';
        6: StatusBar1.Panels[0].text :='MSSQLSERVER 正在暂停';
        7: StatusBar1.Panels[0].text :='MSSQLSERVER 已经暂停';
      end;
      //如果该Service已停止则启动它
      if  returnstatus.dwCurrentState=SERVICE_STOPPED     then
      begin
        StatusBar1.Panels[1].text :='正在启动MSSQLSERVER服务...';
        try
          StartService(hService,0,lpServiceArgVectors) ;
          StatusBar1.Panels[1].text :='MSSQLSERVER 启动成功';
          StatusBar1.Panels[0].text :='MSSQLSERVER 正在运行';
        except
          StatusBar1.Panels[1].text :='MSSQLSERVER 启动失败';
          StatusBar1.Panels[0].text :='MSSQLSERVER 已经停止';
        end;
      end ;  //关闭该Service
      try
        CloseServiceHandle(hService);
      except
        ShowMessage('关闭ServiceHandle时发生错误');
      end;end;
      

  4.   

    谢谢你ron_xin(星雨) ,我能加你为好友吗