希望有样例程序,我搜索了网上的贴子,但总是无法正常启动!

解决方案 »

  1.   

    首先确保你登陆的用户有管理员权限。
    给你一个启动服务的函数。
    function StartSQLService(ServiceName: PChar): boolean; //参数为服务名
    var
      hSCManager : SC_HANDLE;
      hScSqlServer : SC_HANDLE;
      ScStatus : TServiceStatus;
      WaitCount : Integer;
    begin
      result:=false;
           hSCManager := OpenSCManager( nil, nil, SC_MANAGER_ALL_ACCESS );
      
      if hSCManager=0 then
        begin
        ShowErr(....); //这里自己写吧
        exit;
        end;
      try  hSCSqlServer := OpenService( hSCManager, ServiceName, SERVICE_ALL_ACCESS );
      if hSCSqlServer=0 then
        begin
          ShowErr(...); //这里自己写吧
          exit;
        end;
        try
      StartService( hSCSqlServer, 1, ServiceName );
     
      WaitCount:=0;
      while True do
        begin
          QueryServiceStatus( hSCSqlServer, ScStatus );
            if ScStatus.dwCurrentState = SERVICE_RUNNING then  break;
          Sleep(1000);
          WaitCount := WaitCount + 1;
          if WaitCount=SQLTIMEOUT then
            begin
              ShowErr(...);    //这里自己写吧
              exit;
            end;
        end;
          result:=true;
        finally
      CloseServiceHandle(hSCSqlServer);
        end;
      finally
      CloseServiceHandle(hSCManager);
    end;
    end;
      

  2.   

    谢谢,我马上试,servicename 是service application 中的 displayname吗?