dbgrid转txt,如何把栏位名变成dbgrid中的中文名称? |
答題得分者是:老大仔
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
各位大大好,下面是我的code,能把dbgrid中的资料转为txt,但是转出来后的栏位名却是sql中的英文名,我想改成dbgrid中的中文名,该怎么做?
procedure TForm1.Button1Click(Sender: TObject); begin DbgridToTxt(dbgrid1); end; procedure Tform1.DbgridToTxt(source:Tobject); var filename:Textfile; Dataset:Tdataset; titlestr,valuestr,tempstr:string; counter:integer; begin if (source is Tdbgrid)then Dataset:=Tdbgrid(source).DataSource.DataSet else Dataset:=TDataset(source); if ((Dataset.IsEmpty)or(not Dataset.Active))then exit else begin Dataset.DisableControls; Dataset.First; if savedialog1.Execute then begin assignfile(filename,savedialog1.FileName); rewrite(filename); for counter:=0 to Dataset.FieldCount-1 do titlestr:=titlestr char(9) Dataset.Fields[counter].DisplayLabel; titlestr:=trim(titlestr); writeln(filename,titlestr); while not Dataset.Eof do begin valuestr:=''; for counter:=0 to Dataset.FieldCount-1 do begin tempstr:=Dataset.Fields[counter].Text; valuestr:=valuestr char(9) tempstr; end; valuestr:=trim(valuestr); writeln(filename,valuestr); Dataset.Next; end; closefile(filename); end; Dataset.EnableControls; end; end; |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
要嘛就是寫入TEXT時
一個一個欄位給名稱 for counter:=0 to Dataset.FieldCount-1 do titlestr:=titlestr char(9) Dataset.Fields[counter].DisplayLabel; 改成: for counter:=0 to Dataset.FieldCount-1 do begin if counter = 0 then.... else if counter = 1 then... end; 這樣很累...我知道= = 另一個解法是~ 當您在Select 時 就先把欄位給改成中文的即可 Ex: Select productname as 產品名稱 From product |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |