全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1264
推到 Plurk!
推到 Facebook!

是否有比較快的方法可以判斷mysql伺服器是否存在可以工作

尚未結案
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 09:31:37 IP:211.75.xxx.xxx 未訂閱
請問各位大大: 是否有比較快的方法可以判斷mysql 伺服器是否存在可以工作.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-22 11:49:58 IP:211.76.xxx.xxx 未訂閱
Hi, 可以使用 fastnet 的 powersocket , 不過這是個偵測是否有 listen 而且, 並非真的有 mySql 在該主機上執行, 不過這是一個比較快的方式. mySql 是 listen 3306 port 的, 所以程式碼如下:    
procedure TForm1.Button6Click(Sender: TObject);
var
  bListening: Boolean;
begin
  Powersock1.Host := '192.168.1.1';
  Powersock1.Port := 3306;
  bListening := false;
  try
    Powersock1.Connect;
    bListening := true;
    Powersock1.Disconnect;
  except
    bListening := false;
  end;
end;
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-22 15:05:40 IP:211.75.xxx.xxx 未訂閱
請問timhuang大大: Powersock是delphi內建的嗎? 我可以到那裏找到它呢? 在下是使用delphi7
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-22 15:36:26 IP:211.76.xxx.xxx 未訂閱
是在fastnet元件盤裡的Powersock, delphi 5和 delphi 6都有, delphi 7 好像沒有, 不過也可以使用 indy clients 的元件 idtcpclient 試試看.    
procedure TForm1.Button1Click(Sender: TObject);
var
  bListen : Boolean;
begin
  IdTCPClient1.Host := '192.168.1.1';
  IdTCPClient1.Port := 3306;
  bListen := false;
  try
    IdTCPClient1.Connect;
    bListen := true;
  except
    bListen := false;
  end;
  IdTCPClient1.Disconnect;
end;
發表人 - timhuang 於 2003/04/22 15:44:03
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-23 09:53:16 IP:211.75.xxx.xxx 未訂閱
謝謝timhuang大大 但是我發現如果該IP不存在的話, 程式會想好幾秒,所以我想先確定 ip是否存在.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-23 13:08:38 IP:211.76.xxx.xxx 未訂閱
要先確認是不是 ip alive 可以利用 IdIcmpClient 元件, 該元件就是 ping 的功能.    
var
  Form1: TForm1;
  iLive: integer;
implementation    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
begin
  IdIcmpClient1.ReceiveTimeout := 1000;  //設定回應的等候時間
  IdIcmpClient1.Host := '192.168.99.1';
  iLive := 0; //執行前先給 0
  try
    IdIcmpClient1.Ping;
  except
    iLive := 2;
  end;
end;    procedure TForm1.IdIcmpClient1Status(axSender: TObject;
  const axStatus: TIdStatus; const asStatusText: String);
begin
  Memo1.Lines.Add('status' asStatusText);
end;    procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
  if AReplyStatus.FromIpAddress <> '0.0.0.0' then
    iLive := 1 //成功
  else
    iLive := 2; //失敗
  showmessage(inttostr(iLive));
end;
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-23 13:56:33 IP:211.75.xxx.xxx 未訂閱
謝謝timhuang 大大熱心指導: 我就是想要這個功能!
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-23 13:56:45 IP:211.75.xxx.xxx 未訂閱
謝謝timhuang 大大熱心指導: 我就是想要這個功能!
系統時間:2024-11-22 17:25:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!