[问题] clientdataset mybase filter之后修改数据的怪问题 |
尚未結案
|
wpf
一般會員 發表:11 回覆:22 積分:6 註冊:2002-04-14 發送簡訊給我 |
在d7中,我使用clientdataset连接本地的cds文件,在cds文件内,有一列为flag,其中我需要标记为1,或者0, 在load数据之后,如果 filtered=false,那么我从第一条到结尾,全部修改flag=1成功,并且我 filter='flag = 0' ,filtered=true 也正常, 但是,假设我预先指定部分记录的flag=0,并且使用上面的条件过滤之后,假设过滤之后有500条记录,在这500记录的基础上从头到尾依次修改flag=1,
这是从外观上就看出了奇怪的现象,我第一次执行修改flag功能,那么他修改250条记录,再执行又是一半,125,之后,总是一半, 代码应该没有问题,不存在next两次的问题,并且,没有过滤的时候的修改也是同一段代码,只是修改的标记不同而已.
苦思不得其解
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
wpf 你好:
你所謂的依次修改,是不是
while not eof do biegn update.... next; end;沒錯看起來你是沒有next兩次,可是你的資料是filtered過的 舉例來說好了,原本你有500筆資料,filter過可能剩250條件 是某個欄位的值為0來filter,你想想當你update第一筆0為1時 filter是不是會把這筆資料過慮掉,然後你在next結果會變成 一次跳兩筆,所以上面的寫法要改一下改成 while dataset.fieldbyname('欄位')='0' do biegn update 把0的變成1 // next; <--不要了 end;雖然沒有next但是因為filter所以到最後還是會跑完.... 以上是我的猜測和建議,試試.... |
wpf
一般會員 發表:11 回覆:22 積分:6 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |