如何将数据保存为xml文件(100分)

  • 主题发起人 主题发起人 lkm.424
  • 开始时间 开始时间
L

lkm.424

Unregistered / Unconfirmed
GUEST, unregistred user!
我没有接触过xml,可现在要将数据保存为xml 请问如何实现阿
 
procedure TForm1.Button1Click(Sender: TObject);
begin
...
ADOQuery1.SaveToFile('AFileName', pfXML);
end;
 
var
f: TCharSetFile;
begin
if TntSaveDialog1.Execute then
begin
DataSet_backup.Data := song_dataSet.Data;
f := TcharSetFile.Create(TntSaveDialog1.FileName,csUtf8,True);
f.WriteLnW('<?xml version=&quot;1.0&quot;
encoding=&quot;UTF-8&quot;?>');
f.WriteLnW('<Tables>');
f.WriteLnW('<Song>');
DataSet_backup.First;
while not DataSet_backup.Eofdo
begin
f.WriteLnW('<Record>');
f.WriteLnW('<SongFileID>'+DataSet_backup.FieldByName('svcd_file_id').AsString+'</SongFileID>');
f.WriteLnW('<SongID>'+DataSet_backup.FieldByName('song_id').AsString+'</SongID>');
f.WriteLnW('<SongName>'+replace(DataSet_backup.FieldByName('Song_Name').Value)+'</SongName>');
f.WriteLnW('<SelectType>'+DataSet_backup.FieldByName('Is_Check').AsString+'</SelectType>');
f.WriteLnW('</Record>');
end;
DataSet_backup.Next;
end;
f.WriteLnW('</Song>');
DataSet_backup.Data := movie_dataset.Data;
DataSet_backup.First;
f.WriteLnW('<Movie>');
while not DataSet_backup.Eofdo
begin
if DataSet_backup.FieldByName('is_check').AsString='1' then
begin
f.WriteLnW('<Record>');
f.WriteLnW('<MovieID>'+DataSet_backup.FieldByName('movie_id').AsString+'</MovieID>');
f.WriteLnW('<MovieName>'+replace(DataSet_backup.FieldByName('movie_Name').Value)+'</MovieName>');
f.WriteLnW('</Record>');
end;
DataSet_backup.Next;
end;
f.WriteLnW('</Movie>');
f.WriteLnW('</Tables>');
f.Save;
FISChange := False;
ShowMessage('保存模板完毕!');
end;
end;
 
如果是sql server数据库,可以直接输出XML格式,详细的说明请查sql server在线帮助。
 
谢谢各位指教,我用的是Access数据库
 
ADOQuery1.SaveToFile('AFileName', pfXML);我试验过了 报错:'多步操作产生错误,请检查每一步的状态值',难道它不能一次性把一个数据集的数据全部保存?
 
sun_8113 的方法我看了 没有看明白 能否给个说明?
 
ClientDataSet
 
sbzldlb,谢谢了 能否详细点阿
 
刚才我试过了 ADOQuery1.SaveToFile('AFileName', pfXML);在SQLServer中是可以的,可是在Access中确不行啊! 请问如何解决阿
 
ClientDataSet.Saveto
 
我就是用下面的方式,连接Access,并保存成为XML文件,不知道你们那里为什么不行!
procedure TForm1.FormShow(Sender: TObject);
begin
ADOTable1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.SaveToFile('C:/e.xml', pfXML);
end;
 
楼主把代码贴下
或许其他地方错了呢
 
我的意思就是将数据一条一条写入文件中,内容格式是符合xml的格式,然后保存为xml文件.
这样可以设定自已的格式. 数据源是其它的(不是query或table)之类的.也可以完成.
 
我的界面上放了一个ADOQuery和一个ADOConnection 还有一个Button
procedure TForm1.Button1Click(Sender: TObject);
begin

ADOQuery1.SaveToFile('AFileName', pfXML);
end;
我链接的是Access数据库。
这样保存成xml时就会出现'多步操作产生错误,请检查每一步的状态值'的问题
 
ADOQuery1怎么设置的呢
 
ADOQuery1.Connection:=AdoConnection1;
ADOQuery1.SQL:='Select from 表';
ADOQuery1.Active:=True;
我是在属性中设置的
 
另外我在ACcess中执行了一下SQL语句 没有问题的!
 
ADOQuery1.SQL:='Select from 表';???
 
我的界面上放了一个ADOQuery和一个ADOConnection 还有一个Button
procedure TForm1.Button1Click(Sender: TObject);
begin

ADOQuery1.SaveToFile('AFileName', pfXML);
end;
我链接的是Access数据库。
这样保存成xml时就会出现'多步操作产生错误,请检查每一步的状态值'的问题
保存的文件名应该是像“C:/x.XML”这样才行啊!
 
后退
顶部