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

使用TAdoTable的locate出現怪問題

尚未結案
Jadugarr
一般會員


發表:3
回覆:1
積分:0
註冊:2003-11-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-06 04:19:56 IP:61.223.xxx.xxx 未訂閱
我使用 Sql7.0 TAdoTable 在 Master/detail 架構下 我刪除 detail Table 的資料 程式碼; disablecontrols; while (locate(, , )) do delete; enablecontrols; 外面我用 loop 重複呼叫前面的程式碼 尋找新的特定資料,然後一筆一筆全部 刪除,但是只有第一次呼叫有用,之後 detail Table 好像被設定 Range 因為 RecordCount 變成 0 可是Table內確實還有其他資料。 有辦法使detail table Refresh嗎? 雖然我 call Refresh method 可是一點用也沒有
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-06 05:10:08 IP:63.84.xxx.xxx 未訂閱
您好!    您的While語句中少了一個end;, 這樣就沒有迴圈的作用了. disablecontrols; while (locate(, , )) do delete; end; enablecontrols; 建議您不要使用Locate方法重复呼叫資料錄, 改用Not eof的判斷方法: disablecontrols; while Not Eof do delete; end; enablecontrols; 參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-06 19:49:48 IP:61.62.xxx.xxx 未訂閱
hi, Jadugarr, 弟試過 master/detail 使用 TADOTable 沒有發生這樣奇怪的現象, 利用你的程式結構寫法是沒有什麼問題的, 可以麻煩你利用中斷點來進行 debug 會比較準確一點, refresh 應該是不需要的, 若是還找不出錯誤的地方, 可能是你 locate 的條件問題或是其他程式碼或是 trigger 等引起的, 可能的話, 麻煩你 post 上來你的程式, 比較容易讓大家幫你解決問題. ps, cashxin2002兄, 在 while .. do 的語法中, 是單行的 statement 是不需要 end 的, 多行的狀況下, 使用 begin 開頭的話, 才需要 end 結尾來包住多行程式碼為一個 statement 的.
系統時間:2024-11-22 15:58:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!