關於動態欄位的SQL語法格式 |
尚未結案
|
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
請教一下
如果我的欄位分別為A1,A2....A12
我欲用參數來指定,如Fd := 'A' + X; //由程式中指定X= 1....12
那在下列法中該欄位變數(Fd)部分應改怎麼寫
(1) Query.ParamByName(''' Fd ''' ).AsInteger (2) Query.SQL.Add('Update ABC '); Query.SQL.Add('SET '); Query.SQL.Add(' Fd = ''' LAMT ''' '); //?? (3) SQL := SQL '( wd1 ,wd2 , Fd )'; SQL := SQL ' Values '; SQL := SQL '( :wd1 ,:wd2, ':' Fd )'; |
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
problemman
一般會員 發表:7 回覆:25 積分:16 註冊:2003-04-11 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject); var i:integer; lSQL,lTempFieldStr,lTempValueFieldStr:String; begin {先做要出所有'Fd' field} for i:=1 to 12 do begin lTempFieldStr:=lTempFieldStr 'Fd' inttoStr(i) '=:Fd' inttostr(i) ','; end; {lTempValueFieldStr='Fd1=:Fd1,Fd2=:Fd2,....,Fd12=:Fd12'} lSQL:='Update ABC SET wd1=:wd1,wd2=:wd2,' lTempValueFieldStr; Query.close; Query.SQL.Add(lSQL); Query.ParamByName('wd1').AsInteger:=???; Query.ParamByName('wd2').AsInteger:=???; Query.ParamByName('Fd1').AsInteger:=???; Query.ParamByName('Fd2').AsInteger:=???; . . . Query.ParamByName('Fd12').AsInteger:=???; Query.ExecSQL; End; 試試看 end;《觸不到問題人》 來無影,去無踪, 問題總是一羅羅。 |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 應該是你要的... 看看有沒有問題.
(1) for i:=1 to 12 do begin Query.ParamByName('F'+IntToStr(i)).AsInteger := valuearray[i]; end; . . . . (2) Query.SQL.Add('Update ABC '); Query.SQL.Add('SET '); for i:=1 to 12 do begin Query.SQL.Add('F'+IntToStr(i)+' = '''+valuearray[i]+''', '); end; . . . . (3) SQL := SQL + '( wd1 ,wd2 '; for i:=1 to 12 do begin SQL := SQL + ', F'+IntToStr(i)'; end; SQL := SQL + ') Values '; SQL := SQL + '( :wd1 ,:wd2'; for i:=1 to 12 do begin SQL := SQL + ', :F'+IntToStr(i)'; end; SQL := SQL + ') '; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |