程序启动时,如何判断本机的服务器服务是否运行?比如:sqlserver,oracle,msde,interbase的

解决方案 »

  1.   

    下面是sqlserver的
    uses ComObj;
    const
    SQLDMOSvc_Unknown   = 0; //未知状态
    SQLDMOSvc_Running   = 1; //已经启动
    SQLDMOSvc_Paused    = 2; //SQL Server为暂停状态
    SQLDMOSvc_Stopped   = 3; //SQL Server为停止状态
    SQLDMOSvc_Starting  = 4; //SQLSERVER正在启动(关闭-->启动)
    SQLDMOSvc_Stopping  = 5; //SQLSERVER正在关闭
    SQLDMOSvc_Continuing= 6; //SQLSERVER正在启动(暂停-->启动)
    SQLDMOSvc_Pausing   = 7; //SQLSERVER正在暂停(启动-->暂停)
    var
      SQLServer      : Variant;
      ServerName     : String;
      LoginUserName  : String;
      LoginPassWord  : String;
      ReturnValue    : Integer;
    begin
      ServerName:='127.0.0.1';
      LoginUserName:='sa';
      LoginPassWord:='******';
      ReturnValue:=0;
      SQLServer:=CreateOleObject('SQLDMO.SQLServer');
      if VarIsNull(SQLServer) then
        raise Exception.Create('没有安装SQL Server!');
      SQLServer.name:='127.0.0.1';
      SQLServer.LoginSecure:=True;
      SQLServer.logintimeout:=30;
      ReturnValue:=SQLServer.Status;
      case ReturnValue of
             0: ShowMessage('未知状态');
             1: begin
                  ShowMessage('已经启动');
                  //SQLServer.Stop;
                end;
             2: begin
                  ShowMessage('暂停状态');
                  SQLServer.Continue;
                end;
             3: begin
                  ShowMessage('停止状态');
                  SQLServer.Start(False,ServerName,LoginUserName,LoginPassWord);
                  //如果SQLServer是本机,还可以: 
                  //winexec(pchar('net start    mssqlserver'),sw_hide);
                  SQLServer.Connect(ServerName,LoginUserName,LoginPassWord);
                end;
             4: ShowMessage('正在启动');
             5: ShowMessage('正在关闭');
             6: ShowMessage('正在暂停');
      else
           ShowMessage('未知状态');
      end;
      SQLServer:=NULL;
    end;
      

  2.   

    这个是显示状态的代码,有没有控制sqlserver服务的代码呢?
      

  3.   

    很多人问过,FAQ中就有
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=41440