關於更新ClientDataSet的問題 |
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
請教各位先進一個問題,有關於更新ClientDataSet的問題.
我的問題是這樣的,我指定一個ClientDataSet給DBGrid,比
如說裡面的資料每筆均有一序號(從1,2,3,...依次排下來)
,若使用者刪除了其中一筆,則以下的資料序號會補上來,所
以每刪除後就要更新刪除的記錄以下的記錄,程式是寫好了.
可是資料一多,在跑的時候,會一筆一筆跑,畫面會閃爍,再回
到原來刪除的那一筆(我有記錄刪除的位置),程式碼如下,
不知道能不能解決閃爍的這個問題,因為資料很多要等很久,
還是說再作異動前,先把ClientDataSet不指定給DBGrid?跑
完再指定?還是各位先進有更好的方法?請不吝指導,謝謝! procedure TEnquiryFrm.pmEnquiryMed_DeleteClick(Sender: TObject);
var RemDeleteRecNo: integer;
begin
if not cdsEnquiryMed.IsEmpty then //刪除前判斷DataSet是否為空
begin
RemDeleteRecNo := cdsEnquiryMed.RecNo; //記錄刪除的位置
cdsEnquiryMed.Delete;
if not cdsEnquiryMed.IsEmpty then //刪除後判斷DataSet是否為空
begin
if RemDeleteRecNo > cdsEnquiryMed.RecordCount then //如果是最後一筆則記錄刪除的位置為最末筆
RemDeleteRecNo := cdsEnquiryMed.RecordCount;
cdsEnquiryMed.RecNo := RemDeleteRecNo;
While not cdsEnquiryMed.Eof do //從刪除的位置開始往下執行序號重新指定
begin
cdsEnquiryMed.Edit;
cdsEnquiryMed.FieldValues['No'] := cdsEnquiryMed.RecNo;
cdsEnquiryMed.Next;
end;
cdsEnquiryMed.RecNo := RemDeleteRecNo //設定目前記錄在刪除的位置
end;
end;
end;
|
阿子
站務副站長 發表:120 回覆:230 積分:201 註冊:2002-03-18 發送簡訊給我 |
試看看這樣呢?
if not cdsEnquiryMed.IsEmpty then //刪除前判斷DataSet是否為空 begin cdsEnquiryMed.DisableControls; RemDeleteRecNo := cdsEnquiryMed.RecNo; //記錄刪除的位置 cdsEnquiryMed.Delete; if not cdsEnquiryMed.IsEmpty then //刪除後判斷DataSet是否為空 begin if RemDeleteRecNo > cdsEnquiryMed.RecordCount then //如果是最後一筆則記錄刪除的位置為最末筆 RemDeleteRecNo := cdsEnquiryMed.RecordCount; cdsEnquiryMed.RecNo := RemDeleteRecNo; while not cdsEnquiryMed.Eof do //從刪除的位置開始往下執行序號重新指定 begin cdsEnquiryMed.Edit; cdsEnquiryMed.FieldValues['No'] := cdsEnquiryMed.RecNo; cdsEnquiryMed.Next; end; cdsEnquiryMed.RecNo := RemDeleteRecNo //設定目前記錄在刪除的位置 end; cdsEnquiryMed.EnableControls; end;從思考取勝一切~q
------
從思考取勝一切~q |
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
|
阿子
站務副站長 發表:120 回覆:230 積分:201 註冊:2002-03-18 發送簡訊給我 |
|
chinliang
一般會員 發表:16 回覆:26 積分:13 註冊:2002-06-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |