線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1135
推到 Plurk!
推到 Facebook!

dbgrid转txt,如何把栏位名变成dbgrid中的中文名称?

答題得分者是:老大仔
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-05-27 13:59:14 IP:65.49.xxx.xxx 訂閱
各位大大好,下面是我的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;
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-05-27 16:49:02 IP:59.120.xxx.xxx 未訂閱
要嘛就是寫入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
系統時間:2017-12-16 17:21:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!