請問搜尋後修改但為什麼,修改並不是照資料順序 |
答題得分者是:tuga
|
wildsky
一般會員 發表:6 回覆:7 積分:2 註冊:2008-06-02 發送簡訊給我 |
請問SetRange後修改資料,為什麼它修改的順序是
J00002 J00004 J00003 而不是 J00002 J00003 J00004 煩請指教 多謝 以下是測試的程式碼 [code delphi] procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin Table1.Active:=true; Table1.IndexFieldNames:='code'; Table1.SetRangeStart; Table1CODE.AsString:='J00002'; Table1.SetRangeEnd; Table1CODE.AsString:='J00004'; Table1.ApplyRange; Table1.Active; while not Table1.eof do //for I := 0 to Table1.RecordCount - 1 do begin Table1.Open; Table1.Edit; Table1CODE.AsString:=stringreplace(Table1CODE.AsString, '0', '1', [rfReplaceAll]); ShowMessage(Table1CODE.AsString); Table1.Post; //Table1.Next; // ShowMessage('1'); end; end; [/code] 編輯記錄
wildsky 重新編輯於 2013-06-06 11:07:00, 註解 無‧
|
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
wildsky
一般會員 發表:6 回覆:7 積分:2 註冊:2008-06-02 發送簡訊給我 |
max5020大 你好
關於你說的加Table1.First; 其實我昨天早上試的時候也測過,也是一樣的問題 後來我把Table1.Next;加上就照順序了。 ==================== 不好意思我沒學過程式語言所以以下是我所認知的 ==================== SetRange後照道理,不是應該指標在第一筆 然後執行迴圈(不是最後一筆資料則繼續) 所以它不是應該會是2==>3====>4這樣執行下來 但實際他卻是2==>4====>3這樣執行下來 小弟發問只是想知道為什麼會這樣?
編輯記錄
wildsky 重新編輯於 2013-06-07 15:53:01, 註解 無‧
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
如果你的修改的資料是 index expression 的其中一部份,
post 以後, record 的順序就變掉了, 並不是原來的順序 ===================引 用 wildsky 文 章=================== max5020大 你好 關於你說的加Table1.First; 其實我昨天早上試的時候也測過,也是一樣的問題 後來我把Table1.Next;加上就照順序了。 ==================== 不好意思我沒學過程式語言所以以下是我所認知的 ==================== SetRange後照道理,不是應該指標在第一筆 然後執行迴圈(不是最後一筆資料則繼續) 所以它不是應該會是2==>3====>4這樣執行下來 但實際他卻是2==>4====>3這樣執行下來 小弟發問只是想知道為什麼會這樣? |
wildsky
一般會員 發表:6 回覆:7 積分:2 註冊:2008-06-02 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |