一個 record 的定義問題 |
缺席
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位,
腦袋突然打結, 想不透一個問題 我有20個欄位(例如 'A', 'B', 'C'......) 我定義了一個 const myFD : Array[0..19] of string = ('A', 'B', 'C', 'D',.....) 而我想寫一支 function 把20組值寫入到這些欄位中(欄位有 string, boolean, integer) function InsertData(?1) var i : integer; begin Query1.Append; for i := low(myFD) to high(myFD) do begin Query1.FieldByName(myFD[i]).Value := ?2 end; Query1.Post; end; 請問, ?1 及 ?2 我該如何定義, 才能達成 原先我用 Record 方式 例如 type TmyFDRec = Record A : string; B : string; C : Integer; D : boolean; .... end; 但 ?1 我放進去 myValue : TmyFDRec 是可以的, 但 ?2 卻不知要如何表達語法 雖然我可以這麼下, function InsertData(a: string; b:string; c:integer; d:boolean; e:xxxxx......) begin Query1.FieldByName('A').Value := a; Query1.FieldByName('B').Value := b; Query1.FieldByName('C').Value := c; ... end; 但要寫一大串, 有沒有更精簡的下法, 感恩... |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
Hi PD大,
好像也沒什麼簡便的方式, 要用一些判斷式去判斷欄位型態 procedure TForm2.Button1Click(Sender: TObject); var i:Integer; begin ClientDataSet1.CreateDataSet; ClientDataSet1.Append; for I := 0 to ClientDataSet1.FieldCount-1 do begin if ClientDataSet1.Fields[i].DataType=ftString then ClientDataSet1.Fields[i].AsString:='abc'; if ClientDataSet1.Fields[i].DataType=ftInteger then ClientDataSet1.Fields[i].AsInteger:=20; end; end; ===================引 用 P.D. 文 章=================== 請問各位, 腦袋突然打結, 想不透一個問題 我有20個欄位(例如 'A', 'B', 'C'......) 我定義了一個 const myFD : Array[0..19] of string = ('A', 'B', 'C', 'D',.....) 而我想寫一支 function 把20組值寫入到這些欄位中(欄位有 string, boolean, integer) function InsertData(?1) var i : integer; begin Query1.Append; for i := low(myFD) to high(myFD) do begin Query1.FieldByName(myFD[i]).Value := ?2 end; Query1.Post; end; 請問, ?1 及 ?2 我該如何定義, 才能達成 原先我用 Record 方式 例如 type TmyFDRec = Record A : string; B : string; C : Integer; D : boolean; .... end; 但 ?1 我放進去 myValue : TmyFDRec 是可以的, 但 ?2 卻不知要如何表達語法 雖然我可以這麼下, function InsertData(a: string; b:string; c:integer; d:boolean; e:xxxxx......) begin Query1.FieldByName('A').Value := a; Query1.FieldByName('B').Value := b; Query1.FieldByName('C').Value := c; ... end; 但要寫一大串, 有沒有更精簡的下法, 感恩... |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
tick228
高階會員 發表:1 回覆:47 積分:104 註冊:2003-11-03 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
chenyk
高階會員 發表:14 回覆:95 積分:171 註冊:2002-07-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |