TADOQuery Load XML後查詢 |
答題得分者是:smallfox
|
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
||||||||||||||||
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
||||||||||||||||
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
||||||||||||||||
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
||||||||||||||||
smallfox
高階會員 發表:2 回覆:113 積分:128 註冊:2003-02-19 發送簡訊給我 |
||||||||||||||||
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
||||||||||||||||
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
這方式之前有試過,在和DB有連結下可以,但沒有情況下會有錯
不知RURU大大是測試哪一個的, 目前改用TClientDataSet試看看可不可行,謝囉 ===================引 用 GrandRURU 文 章=================== 剛試了一下,這個真的是好方法! 在Filter設定 [name like 'U%' and name = 55] 再把Filtered設為True就可以做篩選了 哈哈! smalfox大真是太厲害了 ===================引 用 smallfox 文 章=================== 可否用過 Filter & Filtered 兩個屬性?!
------
程式沒有這麼難 只是還沒打通其中要絕 |
|||||||||||||||
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
感謝二位大大
剛試了TClientDataSet可以使用,又回頭使用TADOQuery也是可以的, 應該是之前豬頭Filter 第一個條件多了and....樣子一直不通過... 不過也剛好測試2者效能如何,數據如下表,再次感謝2位大大, 分數就給smallfox 大大囉,嘿!
===================引 用 GrandRURU 文 章=================== 剛試了一下,這個 真的是好方法! 在Filter設定 [name like 'U%' and name = 55] 再把Filtered設為True就可以做篩選了 哈哈! smalfox大真是太厲害了 ===================引 用 smallfox 文 章=================== 可否用過 Filter & Filtered 兩個屬性?!
------
程式沒有這麼難 只是還沒打通其中要絕
編輯記錄
shunaaron 重新編輯於 2010-11-11 20:30:18, 註解 無‧
|
|||||||||||||||
smallfox
高階會員 發表:2 回覆:113 積分:128 註冊:2003-02-19 發送簡訊給我 |
利用Filter來下達類似SQL command的做法會受制於運算子 AND & OR 不能混合使用,
而且AND運算子也有一定的使用量, 遇到大量條件運算時, 還是得使用迴圈的話, 使用 TClientDataSet 在 Local 端的記憶體中建立一個暫存表(欄位名稱及型態都可自訂), 利用TADOQuery來讀取資料後, 再存入 TClientDataSet (之後TADOQuery就可關閉), 這樣不用在後端資料庫中生成暫存表, 可不受資料庫別(如換成Oracle)語法的限制, 使用者在資料庫的權限也可降低一些. 可是相當方便哩 !! 這也算是另一種過濾紀錄的方式 ... ===================引 用 GrandRURU 文 章=================== 當然也是有其它作法啦 比方說,臨時表 印象中M$ SQL有這項功能,在記憶體裡直接開一張表格來存放暫存資料,但具體的實作方法我不清楚 (我嘴炮了,因為我是直接開實體的TEMP TABLE來處理啦。 XD) 將LOAD XML的資料集轉存到DB的TABLE裡,然後再用SQL處理,結束後再EMPTY TABLE。 看起來步驟很多,但實際上的程式碼應該會比 FOR IF 程式處理來得更少。 |
|||||||||||||||
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
||||||||||||||||
shunaaron
高階會員 發表:13 回覆:94 積分:106 註冊:2006-10-06 發送簡訊給我 |
因為會不斷來回查詢這些相關資料,
所以會,來回不斷與資料庫往來, 之前是將查過資料會於memory裡, 現在是想試看看別模式下是否會更加快速, 有許多不同做法,有些摸式是將網路資料暫存於Access, 但如果當使用者是沒有Access時又會有問題, 故此會想採用XML模式去做, 用TADOQuery 或TClientDataSet 其實都可, 但如果要不斷來回查這些資料,才會針對此2元件做效能比較, 感謝sryang 再次補充說明。 ===================引 用 sryang 文 章=================== 用 TADOQuery 或是 TADODataSet的話,也可以在 Open 之後,先 Last 把合乎條件的資料都抓進記憶體 再把 Connection 屬性設定為 nil,把與資料庫的連結關係切斷 這樣資料還是保留著,接下來再用 Filter 來過濾資料 就可以省掉把資料搬到 TClientDataSet 的功夫
------
程式沒有這麼難 只是還沒打通其中要絕 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |