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

ClientDataset 經過 Filter 後,編輯的問題

答題得分者是:wscken
Charlies Chang
一般會員


發表:3
回覆:9
積分:7
註冊:2003-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-24 01:46:25 IP:220.130.xxx.xxx 訂閱
描述:
有一個Dataset
經DatasetProvider 取至一個 ClientDataset1
再經 DatasetProvider 並濾掉部份資料 得到 ClientDataset2

在編輯時發生了一個問題:
Dataset 本有資料
1,AAA,,
2,BBB,,
3,CCC,,

到ClientDataset1 時,還是3筆
1,AAA,,
2,BBB,,
3,CCC,,

到ClientDataset2 時,因過濾後只留1筆
3,CCC,,

編輯 CCC 後的空欄位為CC3
經ClientDataset2.Applyupdate後

ClientDataset1 以為應為
1,AAA,,
2,BBB,,
3,CCC,CC3,

但是得到的確是
1,AAA,CC3,
2,BBB,,
3,CCC,,

CC3的值被對應到第一個record,而不是原來的 [3,ccc,,]

是不是要定義什麼 Key,以維持記錄間的對應?
或是不應這麼用?

謝謝各位熱心的先進
編輯記錄
Charlies Chang 重新編輯於 2008-11-24 02:18:49, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-24 18:12:00 IP:61.67.xxx.xxx 未訂閱
你只是描述結果讓我們知道, 一般這類的情況你最好展示這段的程式碼出來, 我們才有辦法知道你問題出在那裡
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-29 18:44:33 IP:203.66.xxx.xxx 訂閱
你可以試試看使用CloneCursor的方式,那就會自動同步了。
Charlies Chang
一般會員


發表:3
回覆:9
積分:7
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-10 14:54:14 IP:220.130.xxx.xxx 訂閱
謝謝各位

後來找到答案了,是因為 DatasetProvider中的updateMode設錯了,
我誤解了它的意思,將它設為updatewherechange,
後來在"Delphi/Kylix Database Development"一書找到一份淺白的說明,

節錄一下
=========================================================================
WhenUpdateMode=upWhereAll,the SQL statement would be
" UPDATE EMPLOYEES SET SALARY TO 45000 WHERE (ID = 1) AND (NAME = ‘John Smith’)
AND (BIRTHDAY = ‘5/1/1958’)
AND (SALARY = 40000) "

WhenUpdateMode=upWhereChanged,the SQL statement would be
" UPDATE EMPLOYEES SET SALARY TO 45000 WHERE (ID = 1) AND (SALARY = 40000) "
Finally,

when UpdateMode=upWhereKeyOnly,the SQL statement would be
" UPDATE EMPLOYEES SET SALARY TO 45000 WHERE ID = 1 "
=========================================================================

wscken 說的 CloneCursor 的方法好像也是正解,但兩個cds就好像必須相同,
不能做到cds1 有10 個recoed , cds2經過Filter 只有兩個record,作業就針對這兩個record 編輯.
不過我會再試試看Clonecursor的方法,若有心得,再和大家分享.


系統時間:2024-05-06 11:22:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!