Delphi轉成BCB.. |
尚未結案
|
pika2005
初階會員 發表:27 回覆:48 積分:25 註冊:2005-02-17 發送簡訊給我 |
小弟要用底下這篇聯結的程式,將目前的資料複製一筆一樣的,
但因為是用Delphi,看的一知半解,翻成BCB,才看的比較懂..
只好拜託,感恩... 請問如何用簡單的方法將目前的這筆資料,再複製一筆
http://delphi.ktop.com.tw/topic.php?topic_id=47510 原始程式:
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
v : variant ;
Flds :String ;
Sl : TStrings ;
begin
Sl := TStringList.create;
Dataset.GetFieldNames(Sl);
Flds := Sl.CommaText;
Sl.Free;
Flds := StringReplace(Flds,',',';',[rfReplaceAll]);
// 以下與上面rovi大大的寫法是相同的
v := DataSet[Flds];
DataSet.Append;
DataSet[Flds] := v;
// 在這修正不同的欄位資料
DataSet.post;
end; 以下是我翻的,有些我明知有錯,但我不會改..
void __fastcall TChildFrame01::Button1Click(TObject *Sender)
{
int v;
String Flds;
TStrings *Sl = new TStringList(this);
DataSource1->DataSet->GetFieldNames(Sl);
Flds = Sl->CommaText;
Sl->Free();
Flds = StringReplace(Flds,',',';',[rfReplaceAll]);
// 以下與上面rovi大大的寫法是相同的
v = DataSource1->DataSet[Fld];
DataSource1->DataSet->Append();
DataSource1->DataSet[Flds] = v;
// 在這修正不同的欄位資料
DataSource1->DataSet->Post();
}
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
稍微解釋一下,它們在幹嘛
void __fastcall TForm1::Button1Click(TObject *Sender) { Variant v; String Flds; TStringList *SL = new TStringList; TReplaceFlags rf; // 捉所有的欄位出來 // CommaText 會讓 TStringList 的所有 String 以 "," 隔開連在一起 DataSource1->DataSet->GetFieldNames(SL); Flds = SL->CommaText; SL->Free(); // 因為 FieldValues 接受的欄位分隔 // 要用 ";" 隔開,所以把 "," 改成 ";" rf << rfReplaceAll; Flds = StringReplace(Flds, ",", ";", rf); // 這裡有個地方要注意,如果你的記錄裡,有自動遞增的欄位 // 直接抄這一段會有問題,記得把那個欄位,先從 Flds 移掉 // 假設自動遞增的欄位叫 AutoID 的話,加上下面這一行 Flds = StringReplace(Flds, "AutoID;", "", rf); v = DataSource1->DataSet->FieldValues[Flds]; DataSource1->DataSet->Append(); DataSource1->DataSet->FieldValues[Flds] = v; // 不一樣的地方,加在這裡 DataSource1->DataSet->Post(); } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |