我的一个程序是随电脑一起启动的,启动时会连接数据库服务器,可是现在电脑启动时软件先于数据库启动,即软件启动了,数据库服务器还没有启动,这时软件就会报错。
我想有什么办法使软件启动滞后于数据库服务器!
(如果用软件连接延时的话,如果电脑启动慢,可能这里面时间难掌握,)

解决方案 »

  1.   

    循环检查数据库连接状态,可以用查找一张表的方式.用 try excel end 保护起来,查询不成功,隔上现秒在去查。
      

  2.   


    use
      WinSvcvar
      sm: THandle;
      sh: THandle;
      ss: TServiceStatus;begin
        //等待sqlserver启动************************************
        sm := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
        repeat
          sh := OpenService(sm, 'MSSQLSERVER', SERVICE_ALL_ACCESS);
          QueryServiceStatus(sh, ss);
          Application.ProcessMessages;
        until  ss.dwCurrentState =SERVICE_RUNNING;
        //********************************************************
    end;
      

  3.   

    晕死,在系统服务中设置一下<服务依附于MSSQLSERVER>啊
      

  4.   

    設置服務項MSSQLSERVER或 try excel end給出用戶提示
      

  5.   

      TService1 = class(TService)