請問如何複製一筆資料到新增加的資料錄呢? |
答題得分者是:herbert2
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
請問各位大大如何複製一筆資料到新增加的資料呢?
在執行下面的程式碼OldFds[i]出現錯誤請問要如何改才對呢? 資料表共有7個欄位。 謝謝!謝謝! [code cpp] Variant OldFds; void __fastcall TForm1::FormCreate(TObject *Sender) { OldFds=VarArrayCreate(OPENARRAY(int,(1,6)),varVariant); } void __fastcall TForm1::Button2Click(TObject *Sender)//複製 { for(int i =1;i<7;i ) OldFds[i]=ADOTable1->Fields->Fields[i]->AsVariant; } void __fastcall TForm1::Button3Click(TObject *Sender)//貼上 { ADOTable1->Insert(); for(int i =1;i<7;i ) ADOTable1->Fields->Fields[i]->AsVariant=OldFds[i]; } [/code] 我參考了下面的程式碼 定義 OldFds:variant; 2.在TForm Create事件中 OldFds := VarArrayCreate([0, DataSet.FieldCount-1], varVariant); 3.保存記錄值在DataSet之BeforePost事件中 for i:=0 to DataSet.FieldCount-1 do OldFds[i]:=DataSet.Fields[i].Value; 4.下一筆新增中在Dataset之OnNewRecord事件中 for i:=0 to DataSet.FieldCount-1 do DataSet.Fields[i].Value:=OldFds[i];
------
-謝謝大大熱心的回覆!謝謝! |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
先澄清下列問題:
(1) 標題: 複製一筆資料到新增加的資料錄. (2) OldFds[i]=ADOTable1->Fields->Fields[i]->AsString; // 為何不使用 AsVariant ? (3) 複製之後, 您又存回去原資料錄, 那來的新增加的資料錄. 要先令 ADOTable1->Insert() 才會有新的資料錄. 同樣的 ADOTable1->Fields->Fields[i]->AsString=OldFds[i]; // 也應使用 AsVariant ! (4) 您一股腦全把舊錄的欄值全填入心錄各欄要作啥用? 一檔中, 不應該有兩筆完全一樣內容的資料錄, 至少要有一欄主 Key 是唯一的. |
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
問題已經解決了!
謝謝!謝謝! 下面測試的程式碼 [code cpp] void __fastcall TForm1::FormCreate(TObject *Sender) { OldFds=VarArrayCreate(OPENARRAY(int,(1,6)),varVariant); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { for(int i =1;i<7;i ) { Variant Old; Old=ADOTable1->Fields->Fields[i]->AsVariant; OldFds.PutElement(Old,i); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { ADOTable1->Insert(); for(int i =1;i<7;i ) ADOTable1->Fields->Fields[i]->AsVariant=OldFds.GetElement(i); } [/code]
------
-謝謝大大熱心的回覆!謝謝! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |