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

使用了filter後, aggregate欄位變不正確

尚未結案
wyvern
一般會員


發表:19
回覆:31
積分:15
註冊:2003-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-21 09:49:25 IP:61.222.xxx.xxx 未訂閱
我的設定是這樣的: aggregate->Expression = "count(*)" clientdataset->filter = "age=20" 在clientdataset->Open()之後,aggregate=10(正確), 我將三筆資料的age改成20, 然後clientdataset->Filtered=true, aggregate=3(正確),但當我將clientdataset->Filtered=false後, aggregate=13(應該是10才對) 不管怎麼弄,在改變Filtered屬性後,aggregate的值就變成 總筆數 被filtered的筆數
tech_state
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-21 14:26:09 IP:61.221.xxx.xxx 未訂閱
wyvern, 您好 請提供更詳細的Code或上傳您的Project, 讓有經驗的會員可以有更多資料來幫助您。    ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
wyvern
一般會員


發表:19
回覆:31
積分:15
註冊:2003-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-23 11:44:32 IP:61.222.xxx.xxx 未訂閱
我上傳了整個project(含一個paradox的table), 可不可以幫我看一下. < > < > < > < > http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40948 發表人 - wyvern 於 2003/11/23 11:46:45 發表人 - wyvern 於 2003/11/23 11:47:46
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-23 14:22:33 IP:61.221.xxx.xxx 未訂閱
ClientDataSet1->Refresh(); 在使用filter後,加上上面這行,讓他重新整理一次就可以了,嗯~~原因嘛~我是不知道,只是測試後結果就正確了,只能請知道的先進們幫忙解釋囉~ 學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU)
wyvern
一般會員


發表:19
回覆:31
積分:15
註冊:2003-06-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-23 21:48:37 IP:61.222.xxx.xxx 未訂閱
這樣是可以, 不過我真正的程式是使用cache update的方式,(dbExpress ClientDataSet) 使用Refresh之前一定要ApplyUpdates或CancelUpdates(否則會error), 我想讓使用者在資料存入之前可以先知道一些統計數字, 過濾有更改的紀錄,確認沒錯之後再存入. 發表人 - wyvern 於 2003/11/23 21:51:24
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-25 02:31:01 IP:61.221.xxx.xxx 未訂閱
sorry~~不太了解會出現什error說 下面的流程符合您程式的流程嗎?
wyvern
一般會員


發表:19
回覆:31
積分:15
註冊:2003-06-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-26 21:49:16 IP:218.167.xxx.xxx 未訂閱
我也講不出你的流程和我的流程有什麼差別, 我的方法是讓user在client端完成所有的新增修改後, 再傳到資料庫作更改, 這應該比存入資料庫後,再把資料抓出來統計、檢查、修改還少一道程序, 1. 使用者輸入資料 2. 使用filter來統計、核對、列印 3. 將資料寫入資料庫中 我想clientDataSet應該就是這種作用的吧!
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-27 01:44:13 IP:61.221.xxx.xxx 未訂閱
感覺上您的問題似乎沒有解決,有無可能在將flter false後,clientdataset所計算的aggregate是從delta內計算,而不是從資料庫內計算呢?? clientdataset->delta 內存放著新舊資料,不知您手上有沒有博碩的c builder 6 徹底研究,沒有的話可以到書店給他借看一下,看一下章節11-4和12-6的內容,或許對您能有所幫助,另外參考一下下面的文章試試,再不行的話偶就舉白旗囉~=..=~ http://delphi.ktop.com.tw/topic.php?topic_id=37491 學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU)
系統時間:2024-05-02 8:40:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!