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

即時讀取資料庫的資料

答題得分者是:tech_state
Diver
一般會員


發表:4
回覆:2
積分:1
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-19 16:22:38 IP:211.23.xxx.xxx 未訂閱
請問各位前輩: 我有一別人寫好的資料庫,其副檔名是(*.dbf)應該是DBase的資料庫吧!? 這個資料庫會定時的新增資料,譬如說每五秒就會新增一筆資料,我希望能在他寫入資料庫後,就去抓取這新的資料,每隔五秒後,再往下抓新的資料,這該怎麼做啊? 這個資料庫成長的速度很快,,因為每五秒就會新增記錄,資料量很大。是不是用TTable會比TQuery好?就我所知,使用TQuery後,會把當時的紀錄載入到buffer,但是之後新增的記錄就無法取得,除非重新再open。我能不能做到將指標停留在最後一筆,當新增記錄後,直接去讀取這筆新的記錄就好? 希望各位好心人士提供解決方法,謝謝!
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-19 21:53:40 IP:203.204.xxx.xxx 未訂閱
Diver, 您好 我測試了一下您說的情形, 的確若用Query元件就必須再重新Open一次, 而使用Table元件也必須做Refresh的動作。 以上二者熟快熟慢我沒有實際測試過, 不過若用Table元件做Refresh的話, 游標會停在最後一次點選的地方, 而新增的資料會增加在後面, 但前提是新增的資料的值必須比舊的資料值要大, 若以上的方法您可以接受的話, 可以用一個Timer元件, 設定每五秒重新要求Table做一次Refresh。 表達能力不好,若說的不清楚,請包涵。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
timhuang
尊榮會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-19 22:53:47 IP:61.62.xxx.xxx 未訂閱
hi, 先確認你的需求再來規劃如何進行這段的程式設計會比較理想. 請問要取出的資料是只要新增的資料即可, 還是要所有的資料, 這個會和你的程式效能產生很大的問題, 尤其是資料量非常大的時候, 每次都要將該 table 中的所有資料取出的話, 會是相當浪費時間的, 所以想請你先確認所需要的功能是如何應該, 再來考慮程式如何設計.
Diver
一般會員


發表:4
回覆:2
積分:1
註冊:2003-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-20 09:38:56 IP:211.23.xxx.xxx 未訂閱
先謝謝二位前輩的回應 這個資料庫會對每一筆收進來的資料做流水編號,所以新增的資料的值會比舊的資料值要大,再者,我只要取新增的資料就好,不需要取
timhuang
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-20 10:00:45 IP:203.95.xxx.xxx 未訂閱
既然有流水號就好辦了. 首先, 在每次取得資料時, 就要將該次流水號中最大的記錄下來(因為有可能會多於一筆), 利用 timer 設定每五鐘取一次資料, 條件為大於上次的最大流水號: select * from table where serialno > xxxxx order by serialno 使用 TQuery 來取得這個 command 中所取出的資料, 再做你要的處理就可以了!!
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-20 10:02:14 IP:61.221.xxx.xxx 未訂閱
Diver, 您好 我做了以下的測試,您參考看看。 用一個Timer元件設定每五秒做一次 Table1->Refresh(); 如此可以讀取到新增的資料, 實際上也是讀取資料庫裡全部的資料, 但是游標會停留在您做Table1->Refresh();動作之前的地方。 您只要再往下讀取的就都會是新增的資料了。    另外,因為您說有個流水號是一直增加的, 我想到用Query元件應該也可行, 您只要紀錄目前讀取的流水號, 然後用SQL語法過濾流水號大於紀錄的號碼即為新增的資料。    以上想法供您參考,若有問題再提出大家一起討論研究。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
Diver
一般會員


發表:4
回覆:2
積分:1
註冊:2003-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-21 11:19:06 IP:211.23.xxx.xxx 未訂閱
謝謝二位前輩的指導 ! 我可以取得新增的資料了
系統時間:2024-05-07 3:56:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!