联机的数据库是mssql
adqouery1.sql.text:='select * from rec order by adate desc for xml auto, ELEMENTS';显示后的结构是个xml结构 怎样显示和保存(保存的格式是直接保存成相相同的xml格式)????数据量很大 最好直接显示和保存!

解决方案 »

  1.   

    XML格式就是有格式的文本格式!!!使用TStirngList将数据装载然后使用SaveToFile方法保存之!!!
      

  2.   

    按楼上所说的显示不出来
    procedure TForm2.Button1Click(Sender: TObject);
    Var
      AField: String;
      Bs: TADoBlobStream;
      ASTr: TStrings;
    begin
      AField:=dbgrid1.Columns.Items[0].FieldName;
      bs:= TAdoblobstream.Create(Tblobfield(adoquery1.FieldByName(Afield)),bmRead);
      ASTr:= TStringlist.Create;
      AStr.LoadFromStream(Bs);
      AStr.SaveToFile('f:\11.xml');
      astr.Free;
      bs.Free;
    end;
      

  3.   

    TClientDataset.LoadFromFile//加载XMLTClientDataset.SavetoSave;//保存为XML用Visiual Studio.net 能很清楚的显示
      

  4.   

    谢谢楼上各位 但是将mssql的关系数据库中的值以xml方式显示出来只有这一种方式
    但是只能在mssql语句分析器中显示出来 在delphi中为二进制格式无法显示!
    我只是想更快的将数据显示成xml并保存。
      

  5.   

    那你直接用那个XMLDocument不行吗?
    XMLDocument1.SaveToFile()
      

  6.   

    做法比较麻烦些.直接使用VCL ADO组件不行.导入ADO2.6的类型库...
    procedure TForm1.Button1Click(Sender: TObject);
    var
      con:adoint26.Connection;
      cmd:adoint26._Command;
      stream:olevariant;  ra:olevariant;
      s:string;
      strSql:string;
      strsql2:string;
    begin
      con:=adoint26.CoConnection.Create;
      con.ConnectionString:=adoconn.ConnectionString;
      con.Open(con.ConnectionString,'fucai','fucai',0);
      cmd:=adoint26.CoCommand.Create;
      cmd.Set_ActiveConnection(con);
      strsql:='<Invoice xmlns:sql=''urn:schemas-microsoft-com:xml-sql''><sql:query> ';
      strsql:=strsql+'select top 2 * from employees FOR XML AUTO';
      strsql:=strsql+'</sql:query></Invoice>';  cmd.Dialect:='{5D531CB2-E6Ed-11D2-B252-00C04F681B71}';  cmd.CommandText:=strsql;//  cmd.Dialect:=ms
    {SQLOLEDB提供者支援了三種GUIDs語言:
    C8B521FB-5CF3-11CE-ADE5-00AA0044773D,代表一個Transact-SQL查詢,為預設值;
    5D531CB2-E6Ed-11D2-B252-00C04F681B71,代表一個XML範本查詢;
    以及EC2A4293-E898-11D2-B1B7-00C04F680C56,代表一個Xpath查詢。
    SQL Server文件中提到的GUID,
    首先為DBGUID_DEFAULT或DBGUID_SQL,
    第二個為DBGUID_MSSQLXML,
    第三個為DBGUID_XPATH。}  stream:=adoint26.CoStream.Create;
      stream.open;
    //  stream.Open(EmptyParam,adModeWrite,adOpenStreamAsync,'user','passwd');
      cmd.Properties['Output Stream'].Value:=stream;
    //  ("Output Stream")=stmXMLout
      cmd.Execute(Ra,EmptyParam,adExecuteStream);  s:=stream.ReadText(3000);
      ShowMessage(s);end;