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

關於定時refresh資料庫..

 
bastard
一般會員


發表:13
回覆:19
積分:6
註冊:2002-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-07 23:13:59 IP:211.74.xxx.xxx 未訂閱
假設我在timer元件的ontimer事件(一秒呼叫一次)裡 要每一秒時更新資料庫 procedure TForm1.Timer1Timer(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.clear; ADOQuery1.SQL.Add('Select * from search where sh_flag=false'); ADOQuery1.Prepared; ADOQuery1.Open; NMHTTP1.Get(url); .... .... .... NMHTTP1.Discount; end; 我每次跑到一段時間後程式就會發生錯誤(剛開始都不會...), 是不是因為我一直開關ADOQuery1的關係呢?還是NMHTTP的問題? (確定不是程式撰寫錯所產生的錯誤) [Delphi]=*VaKa*=is~me
------
[Delphi]=*VaKa*=is~me
mihopaul
一般會員


發表:25
回覆:59
積分:16
註冊:2002-03-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-04-08 03:55:06 IP:211.74.xxx.xxx 未訂閱
我的猜測 ~~~ 會不會是你的資料庫資料越來越多,來不及在一秒內做完更新哩 ~~~ timer事件的事還沒做完就又被呼叫到,所以過一段時間就 ~~~over 另外Prepared應該不需要一直做吧?? 而且你的sql語法一直沒變 那麼應該不用把query一直clear,和反覆開關 如有錯,請見諒~~ 發表人 - mihopaul 於 2002/04/08 03:58:43
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-04-08 08:13:41 IP:61.219.xxx.xxx 未訂閱
引言: procedure TForm1.Timer1Timer(Sender: TObject); begin NMHTTP1.Get(url); .... NMHTTP1.Discount; end;
NMHTTP1.Get在一秒內應無法完成,Timer每一秒會一直呼叫, 最好設定一整體性變數
var InTimer:boolean;
procedure TForm1.Timer1Timer(Sender: TObject);  
begin
   if intimer then exit;
   intimer:=true;
   NMHTTP1.Get(url); 
    ....
   NMHTTP1.Discount;
   intimer:=false;
end;
initialization
  InTimer:=False;
~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
系統時間:2024-04-26 16:05:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!