TDBGrid編輯問題 |
尚未結案
|
jerry_nie2008
一般會員 發表:8 回覆:4 積分:2 註冊:2005-04-25 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
jerry_nie2008
一般會員 發表:8 回覆:4 積分:2 註冊:2005-04-25 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您的意思是同時加入多筆資料﹐然后一筆筆做輸入的動作﹐然后再一起回存至后端資料庫嗎﹖如果是的話﹐以下的想法供您參考﹕
step1.開啟ADO的BatchUpdate機制﹐即將ADO資料集元件的CursorType屬性值設為ctKeySet或ctStatic﹔LockType屬性值設為ltBatchOptimisic﹒ step2.資料庫端資料表的設計要把除了鍵值欄位以外的所有欄位都設為允許[Null]值或者賦予預設值給對應的欄位﹐然后用迴圈處理﹐只需賦暫定值給鍵值欄位即可﹒
Var I: Integer; begin For I:=1 to 5 do begin ADOTable1.Insert; ADOTable1.FieldByName('鍵值欄位').AsString := IntToStr(I); ADOTable1.Post; end; ADOTable1.Locate('鍵值欄位', IntToStr(1), []); end;step3.以上的最后一步使用Locate方法將資料表指針移至新增的第一筆資料上﹐再對其逐個進行修改﹐當然其中也包括修改鍵值欄位的值﹒ step4.因為ADOTable1已經啟用了ADO的BatchUpdate機制﹐所以以上所有的異動皆是在快儲記憶體中﹐并沒有回存到后端資料庫﹐新增修改完成后﹐通過呼叫ADOTable1.UpdateBatch(arAll);的方法來將資料回存到后端資料庫﹐也可呼叫ADOTable1.CancelBatch(arAll);的方法來取消之前step2~step3的所有異動﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |