Timer 的使用 |
|
chenyinan
一般會員 發表:5 回覆:10 積分:3 註冊:2002-04-17 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 請問各位前輩 如果我有一個資料庫很大,存用資料一次約需二分鐘, 因為很像當機的樣子故想利用 timer 的 even 去顯示時間 可是只要一run取資料時,timer 又好像停了,就像又當機 請問各位有何其他方法可改善此問題 謝謝若是存檔的資料中有迴圈時,可在迴圈中加上 for i:=1 to 10000 do beign //.... process application.processmessages; end; 若是只有一筆就存兩分鐘,您的資料庫可能要調整了! 不然就將存入的指令改為Thread! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
chenyinan
一般會員 發表:5 回覆:10 積分:3 註冊:2002-04-17 發送簡訊給我 |
謝謝站長 我的問題可能表達不清楚,弄錯了. 因為己存在的資料庫是一個異動檔,
現有百萬筆以上的記錄,
我目前的程式是要取出符合條件的資料,
但只要一run 就像當機一樣, 所以我想用 timer 來顯示一些字串,'如正在執行中'.... 可是 timer 也是會停下,又好像停了,等到 sql 作完後,再繼續計時 timer 是我想的方法,是否還有其他方法, sql 的指令很單純如下 Qromt04.SQL.Clear ;
Qromt04.SQL.Add('select mt_date,el_no from romt04 ');
Qromt04.SQL.Add('WHERE el_no >= ' '"' Ed1.Text '"' ' and el_no <= ' '"' Ed2.Text '"');
Qromt04.SQL.Add('Order By el_no');
Qromt04.Close ;
Qromt04.Open ; 只要到 Open 就要等二分鐘以上, 謝謝
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: sql 的指令很單純如下 Qromt04.SQL.Clear ; Qromt04.SQL.Add('select mt_date,el_no from romt04 '); Qromt04.SQL.Add('WHERE el_no >= ' '"' Ed1.Text '"' ' and el_no <= ' '"' Ed2.Text '"'); Qromt04.SQL.Add('Order By el_no'); Qromt04.Close ; Qromt04.Open ; 只要到 Open 就要等二分鐘以上,若一個指令就要兩分鐘,那可能真的要採用Thread,將slect的指令封包至一個Thread物件中,程式就可以在Thread外部Show Run Time... ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
chenyinan
一般會員 發表:5 回覆:10 積分:3 註冊:2002-04-17 發送簡訊給我 |
|
天外來客
初階會員 發表:22 回覆:199 積分:44 註冊:2001-11-27 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
引言: 提供另外一個做法參考看看...但不知是不是你要的... 如果你的目的是要秀出'如正在執行中'.... 1.不需用timer... 2.開一各新的Form(FormX)..上面擺一各Label...一各Animate.... Animate1.CommonAvi:=aviCopyFile; Label1.Align:=alClient; Label1.Caption:='正在執行中'; Animate跟Label的size剛好佔滿整各Form.. 3.SQL語法開始前 FormX.SHOW; FormX.Animate1.active := True; FormX.Update; SQL語法結束時把 FormX.hide.. FormX.Free.. 4.試試看是不是你要的.. ^^... |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 請問各位前輩 如果我有一個資料庫很大,存用資料一次約需二分鐘, 因為很像當機的樣子故想利用 timer 的 even 去顯示時間 可是只要一run取資料時,timer 又好像停了,就像又當機 請問各位有何其他方法可改善此問題我寫了一個用Thread執行Query的範例程式, 請見:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18171 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
enja
一般會員 發表:4 回覆:3 積分:1 註冊:2002-04-30 發送簡訊給我 |
|
ccl
一般會員 發表:2 回覆:12 積分:2 註冊:2002-03-11 發送簡訊給我 |
|
yamapig
一般會員 發表:12 回覆:47 積分:21 註冊:2002-03-26 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 我也有加索引,大約20萬筆資料,若全部Select 出來太約要花20幾秒, 想請教各位因要Insert 資料進此一Table,可是又須判斷是否已存在(若存在 要做別的事情),因如何做比較好呢? 謝謝! 靜中見真境 淡中識本然若用Select * from bigtable 當然要很久:最好是 Select field1,field2,filedn from bigtable where filed1=XXX 要加欄位與條件 判斷是否存在不要用locate會很慢很慢 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |