我用shellexecute(form1.handle,'open',pchar('StartDS.bat'),nil,PChar('D:\SQL\SQLServer\binn\'),SW_HIDE);
启动了一个sqlserver进程
怎样才能关了它?

解决方案 »

  1.   

    1.用findwindow找到sqlserver句柄,
    2用TerminateProcess结束进程
      

  2.   

    应该怎样做?
    我这样是不行的:
    var
    h: hwnd;
    begin
          h := FindWindow(nil,'sqlservr.exe');
          if h <> 0 then SendMessage(h,WM_Close,0,0);
      

  3.   

    仍用批处理
    net stop MSSQLSERVER
      

  4.   

    启用  
    net start mssqlserver关闭net stop mssqlserver
      

  5.   

    StartDS.bat文件里启动SQL是不是用net start MSSQLSERVER,改成net stop MSSQLSERVER
    如:@echo offnet stop MSSQLSERVER
      

  6.   

    启动停止服务命令不用在D:\SQL\SQLServer\binn下执行,本机任何路径都可以执行。
      

  7.   

    启动批处理:
    @echo off
    sqlservr.exe -s 5555  -c
    pause
      

  8.   

    改用net start MSSQLSERVER 启动
    启动/停止服务命令是:net start/net stop
      

  9.   

    -c命令意思是不当作服务
    那样的话跟打开一个应用程序一样,用findwindow找到句柄关闭或用TerminateProcess结束进程,
    这样不是安全关闭
      

  10.   

    我那批处理也许有问题
    我的初衷是:
    用批处理启动一个单独sql实例
    然后在某个时候再关闭它
    如果有更好的方法那就更好了!
      

  11.   

    运行里先输入:cmd
    回车到命令提示符下,输入以下命令进行开启和关闭:
    启用   
    net start mssqlserver关闭net stop mssqlserver