資料庫收集滑鼠移動的座標? |
尚未結案
|
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
請教各位先進,小弟利用資料庫收集滑鼠移動的座標,可是好像沒辦法將每一個移動座標都收進來,如果小弟想要將每一個座標都收進來,不知道可以如何修正?或利用什麼樣的方式來記錄呢?
小弟的code如下,懇請先進們指導一下,謝謝!
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,int X, int Y) { ADODataSet1->Active = true; ADODataSet1->Insert() ; ADODataSet1->FieldByName("move_x")->Value=X; ADODataSet1->FieldByName("move_y")->Value=Y; ADODataSet1->Post(); } |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
站內就有很多相關的討論,可以多加利用 這樣被動的讀取是無法控制取樣的密度,要改用主動讀取的方式處理 可參考
http://delphi.ktop.com.tw/topic.php?topic_id=65340
http://delphi.ktop.com.tw/topic.php?topic_id=64630 我是雪龍 發表人 - bestlong 於 2005/03/04 14:48:02
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
你所謂的沒有辦法是指哪一個部份最好再說明清楚 ?
你的狀況看起來會先有取樣的精度控制問題。若是你所需要的取樣精度很高就會面臨儲存所取樣到的效率問題 ?
引言: 小弟也可以利用下列的code跑出mouse的移動座標,問題是雖然移動的每一點都看到了,可是要把這些座標統統收到資料庫中,卻又沒辦法每一點都收進來;不知道如何解決?懇請各位先進指導,謝謝!我是雪龍 學海無涯覺無盡,勤做筆記防失憶
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
引言: 你所謂的沒有辦法是指哪一個部份最好再說明清楚 ? 你的狀況看起來會先有取樣的精度控制問題。若是你所需要的取樣精度很高就會面臨儲存所取樣到的效率問題 ?再次謝謝bestlong先生,您說到重點了!希望可以和您討論出個結果來。 小弟需要取樣精度很高,也就是最好能將每一個滑鼠移動的座標點都記錄下來;如同之前提到,當然可以利用一些code跑出mouse的移動座標(每一點),可是當要記錄到資料庫時,可能就面臨您所提到的取樣的效率問題?不知道是資料庫來不及記錄所有座標?還是資料庫依時間取樣的問題?這可以解決嗎?懇請賜教了,感恩! |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
你最好要先明確規範資料來源(在此指的是 Mouse 的座標值)的量,你是期望 500ms or 100ms or 50ms 還是更快?這會產生不同的結果與設備資源的需求。 試想,一秒鐘新增 10 筆紀錄與新增 500 筆紀錄,這兩者所需的設備等級特別是在儲存裝置上就有很大的差異。 所以是否一定要直接儲存在資料庫?可否考慮採用自訂的格式來儲存在檔案內。 不管怎麼說,太高的取樣率只是徒增成本,因為你需要更快的機器來處理大量的資料。
引言: 再次謝謝bestlong先生,您說到重點了!希望可以和您討論出個結果來。 小弟需要取樣精度很高,也就是最好能將每一個滑鼠移動的座標點都記錄下來;如同之前提到,當然可以利用一些code跑出mouse的移動座標(每一點),可是當要記錄到資料庫時,可能就面臨您所提到的取樣的效率問題?不知道是資料庫來不及記錄所有座標?還是資料庫依時間取樣的問題?這可以解決嗎?懇請賜教了,感恩!雪龍 http://bestlong.no-ip.com/ 學海無涯覺無盡,勤做筆記防失憶
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
引言: 你最好要先明確規範資料來源(在此指的是 Mouse 的座標值)的量,你是期望 500ms or 100ms or 50ms 還是更快?這會產生不同的結果與設備資源的需求。 試想,一秒鐘新增 10 筆紀錄與新增 500 筆紀錄,這兩者所需的設備等級特別是在儲存裝置上就有很大的差異。 所以是否一定要直接儲存在資料庫?可否考慮採用自訂的格式來儲存在檔案內。 不管怎麼說,太高的取樣率只是徒增成本,因為你需要更快的機器來處理大量的資料。謝謝bestlong先生!因為小弟有這樣的需求,所以必需想辦法解決!不好意思! 可否請教,若資料庫一秒鐘要調整記錄10筆或50筆資料,不知道該如何設定? 另一個問題是,所謂「自訂的格式來儲存在檔案內」又該如何做呢? 懇請bestlong先生不厭其煩的指導!再次感謝! |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
引言: 謝謝bestlong先生!因為小弟有這樣的需求,所以必需想辦法解決!不好意思! 可否請教,若資料庫一秒鐘要調整記錄10筆或50筆資料,不知道該如何設定? 另一個問題是,所謂「自訂的格式來儲存在檔案內」又該如何做呢? 懇請bestlong先生不厭其煩的指導!再次感謝!最簡單粗糙的方式就是使用 Timer 來讀取資料,設定 Interval 屬性 1000 就是一秒執行一次,設定 500 就是 0.5 秒執行一次。不過此種方法可能會因為系統資源競爭的問題而會有超出預期時間的狀況。 而存在檔案中最簡單的自訂格式就是一行一筆紀錄,簡單又好用。不過資料量超多時最好會自動分割檔案處理以增進效率。 雪龍 http://bestlong.no-ip.com/ 學海無涯覺無盡,勤做筆記防失憶
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |