ClientDataSet 的資料無法更新 |
尚未結案
|
yedda
一般會員 發表:13 回覆:27 積分:8 註冊:2002-07-21 發送簡訊給我 |
Server 端有一支 Server Engine ,Client端藉由迴圈動態傳入單位代號,抓取每一單位的資料,並將資料塞回ClientDataSet作後續的處理,結果發現迴圈跑到第二次以後,不管傳入的參數為何,資料都殘留第一批的資料,無法更新,部分程式如下: for i:=0 to sDiv.Count -1 do
begin
cdsMain.close;
cdsMain.Params[0].Value := strDiv[i] ;//傳入參數抓取資料
cdsMain.ProviderName := 'dspPmatdMain';
cdsMain.open; //無論參數值為何,cdsMain的筆數都一模一樣
end; ~ 煩請協助幫忙 ~
|
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi:
for i:=0 to sDiv.Count -1 do begin cdsMain.close; cdsMain.ProviderName := 'dspPmatdMain'; cdsMain.Params[0].Value := strDiv[i] ;//傳入參數抓取資料 cdsMain.open; //無論參數值為何,cdsMain的筆數都一模一樣 end;似乎應該修正如紅色部分,先指定 ProviderName 再傳參數 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman |
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
不知以下程式碼是不是你要的 若不是的話,你需要將程式碼範圍放大一點貼上來。
for i:=0 to sDiv.Count -1 do begin cdsMain.close; cdsMain.Params[0].Value := strDiv[i] ;//傳入參數抓取資料 cdsMain.ProviderName := 'dspPmatdMain'; cdsMain.open; //無論參數值為何,cdsMain的筆數都一模一樣 // 將抓取到的資料修改 程式碼放在此 cdsMain.Edit; cdsMain.FieldByname('XXXXX').AsString := 'xxxx' ; ........ cdsMain.Post; If cdsMain.ChangeCount >0 Then cdsMain.ApplyUpdates(-1); end; // 程式到此 永遠只有最後一次取到的資料 // 前面幾次取到的資料已被For迴圈內的cdsMain.Close;關閉了發表人 - chance36 於 2004/02/05 20:37:51 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |