用下面这段判断数据库是否起来了,在.dpr里判断
try
  Database1.Connected := True;
  except
    application.MessageBox('数据库连接错误', '系统提示', 0);
    application.Terminate;
  end;

解决方案 »

  1.   

    不可能吧,你是怎么写的,我用过,很好。若是数据库没起来,ping通服务器,它很快就报错。若是网络问题,1分钟以内就会报错。我用的是SQLServer7,不论用odbc还是bde。
      

  2.   

    判断是否在网上:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls,Winsock;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        StaticText1: TStaticText;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    function FindComputer(ComputerName: string):Boolean;implementation{$R *.DFM}function FindComputer(ComputerName: string):Boolean;
    var
      WSAData: TWSAData;
      HostEnt: PHostEnt;
    begin
      Result :=True;
      WSAStartup(2, WSAData);
      HostEnt := gethostbyname(PChar(ComputerName));
      if HostEnt = nil then Result := False;
      WSACleanup;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if FindComputer(edit1.text)=True then
        showmessage(edit1.text+'在局域网上!')
        else
         showmessage(edit1.text+'不在局域网上!')
    end;end.