query 的Filter與sql有什麼不同 |
答題得分者是:P.D.
|
chi120
一般會員 發表:16 回覆:16 積分:6 註冊:2007-08-28 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1.結果一様
2.sql方式是直接把filter交由後端的sql資料庫(如interbase, m$sql, mysql...)引擎進行語法的轉譯, 然後分析傳送結果回來 filter 是由 TQuery所封包的物件來進行以上程序, 基本上TQuery一般是透過BDE來操作, 兩者有什麼很大的差別, 個人並沒有很深入的去了解 不過我自己的經驗, 使用 sql 的方式效能比filter 來的好 但 sql 與 filter 最大的差別是在於 使用 sql 前, Query必須是Close, 而 Filter的用法是Query要先開啟, 才下 filter, 這對於大容量的記錄來說就有很大的不同 因為 sql 是先決定條件再open, 所以傳回的筆數可大可小, 但 Query先open, 無異於是先將大量記錄先load回前端, 再由buffer 進行 filter 的功能 尤其 filter 的欄位如果沒有索引的協助, 那可是惡夢一場 以上純屬個人經驗談, 僅提供參考 ===================引 用 chi120 文 章=================== 想請問各位大大 query1.Filtered := False; query1.Filter := '條件'; query1.Filtered := True; 與 query1.close; query1.sql.clear; query1.sql.add('條件'); query1.open; 這兩組query的寫法,有什麼不同??? 過濾條件下一樣,是否就有相同的作用? 謝謝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |