線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2015
推到 Plurk!
推到 Facebook!

Timer 的使用

 
chenyinan
一般會員


發表:5
回覆:10
積分:3
註冊:2002-04-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-23 14:38:29 IP:211.72.xxx.xxx 未訂閱
請問各位前輩 如果我有一個資料庫很大,存用資料一次約需二分鐘, 因為很像當機的樣子故想利用 timer 的 even 去顯示時間 可是只要一run取資料時,timer 又好像停了,就像又當機 請問各位有何其他方法可改善此問題 謝謝
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-04-23 19:44:09 IP:61.219.xxx.xxx 未訂閱
引言: 請問各位前輩 如果我有一個資料庫很大,存用資料一次約需二分鐘, 因為很像當機的樣子故想利用 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-04-24 09:16:10 IP:211.72.xxx.xxx 未訂閱
謝謝站長 我的問題可能表達不清楚,弄錯了. 因為己存在的資料庫是一個異動檔, 現有百萬筆以上的記錄, 我目前的程式是要取出符合條件的資料, 但只要一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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-04-24 11:13:24 IP:61.219.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-04-24 11:56:50 IP:211.72.xxx.xxx 未訂閱
對不起站長 不曾用Thread 請問那裏有參考的範例或書本 站內的 用Thread寫搜尋檔案內容的程式範例 我已看過了 謝謝
天外來客
初階會員


發表:22
回覆:199
積分:44
註冊:2001-11-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-04-24 22:02:01 IP:61.231.xxx.xxx 未訂閱
同一Session,當然一定要等它作完才會輪到ProgressBar等。 當然要用MultiThread作此SQL動作。 如果你用BDE不熟MultiThread,改用ADO好了,用ADO作MultiThread 只要設Property即可。簡單多了。 用SQL又要用ProgressBar就是有這些煩惱。 ReaderFrank
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-04-25 23:50:34 IP:61.217.xxx.xxx 未訂閱
引言: 提供另外一個做法參考看看...但不知是不是你要的... 如果你的目的是要秀出'如正在執行中'.... 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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-04-30 08:23:58 IP:61.219.xxx.xxx 未訂閱
引言: 請問各位前輩 如果我有一個資料庫很大,存用資料一次約需二分鐘, 因為很像當機的樣子故想利用 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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-05-02 09:34:05 IP:211.72.xxx.xxx 未訂閱
引言: 同一Session,當然一定要等它作完才會輪到ProgressBar等。 當然要用MultiThread作此SQL動作。 如果你用BDE不熟MultiThread,改用ADO好了,用ADO作MultiThread 只要設Property即可。簡單多了。 用SQL又要用ProgressBar就是有這些煩惱。 ReaderFrank
不好意思,插花一下,我也這樣的情況 , 所以請問一下 使用 ADO 作 MultiThread , 要如何設定屬性呢 ?
ccl
一般會員


發表:2
回覆:12
積分:2
註冊:2002-03-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-05-06 22:42:27 IP:61.145.xxx.xxx 未訂閱
主要在於 資料庫的調校方法 el_no 欄位是否有加上索引 一般有加索引的欄位 在 SELECT 不用1Sec DATABASE 我是使用ORACLE RECORD 大約 2千多萬筆
yamapig
一般會員


發表:12
回覆:47
積分:21
註冊:2002-03-26

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-05-07 17:25:20 IP:211.22.xxx.xxx 未訂閱
我也有加索引,大約20萬筆資料,若全部Select 出來太約要花20幾秒, 想請教各位因要Insert 資料進此一Table,可是又須判斷是否已存在(若存在 要做別的事情),因如何做比較好呢? 謝謝! 靜中見真境 淡中識本然
------
靜中見真境 淡中識本然
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-05-07 21:51:23 IP:192.168.xxx.xxx 未訂閱
引言: 我也有加索引,大約20萬筆資料,若全部Select 出來太約要花20幾秒, 想請教各位因要Insert 資料進此一Table,可是又須判斷是否已存在(若存在 要做別的事情),因如何做比較好呢? 謝謝! 靜中見真境 淡中識本然
若用Select * from bigtable 當然要很久:最好是 Select field1,field2,filedn from bigtable where filed1=XXX 要加欄位與條件 判斷是否存在不要用locate會很慢很慢 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-04-26 13:21:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!