請問TClientDataSet.State問題? |
答題得分者是:speedup
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
var mystate: TDataSetState; begin mystate := cds1.State; cds2.Data := cds1.Data; if (mysatae = dsEdit) then cds1.Edit; if (mystate = dsInsert) then cds1. <==== ???? myprocess(cds2); //分析函式 end; 請問如何重新讓cds1進入dsInsert狀態?Delphi Man
------
Delphi |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
引言:The inserted record has been posted after your access to its Data property. You can make it into dsInsert state by inserting another record and I think this is not what you want.var mystate: TDataSetState; begin mystate := cds1.State; cds2.Data := cds1.Data; { cds1 is POSTED afterward } if (mysatae = dsEdit) then cds1.Edit; if (mystate = dsInsert) then cds1. <==== ???? myprocess(cds2); //分析函式 end; 請問如何重新讓cds1進入dsInsert狀態?Delphi Man |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
1. 使用 cds1.Edit; 除了不能取消 insert 外 (因為已 post 了),其他的 dbEdit 和 dsInsert 分別不大
2. 先記起各 Field 的值,cds1.Cancel 後才 cds2.Data := cds1.Data; ,之後再 insert 及埴入剛才的值,會很煩但可保留 dbInsert 狀態
3. cds2.Data := cds1.Data; 前先問使用者是否 post, 是則 post 了他事後 Edit, 否則 Cancel 他事後不作處理或insert 一筆新記錄。
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |