超难!超难!超难!超难!怎样显示并保存这样的的结果???

hstod 2003-10-16 04:00:22
联机的数据库是mssql
adqouery1.sql.text:='select * from rec order by adate desc for xml auto, ELEMENTS';

显示后的结构是个xml结构 怎样显示和保存(保存的格式是直接保存成相相同的xml格式)????

数据量很大 最好直接显示和保存!
...全文
44 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyh1898 2003-10-18
  • 打赏
  • 举报
回复
up
lwk_hlj 2003-10-17
  • 打赏
  • 举报
回复
那你直接用那个XMLDocument不行吗?
XMLDocument1.SaveToFile()
hstod 2003-10-17
  • 打赏
  • 举报
回复
谢谢楼上各位 但是将mssql的关系数据库中的值以xml方式显示出来只有这一种方式
但是只能在mssql语句分析器中显示出来 在delphi中为二进制格式无法显示!
我只是想更快的将数据显示成xml并保存。
hstod 2003-10-17
  • 打赏
  • 举报
回复
如果成功一定给分
hstod 2003-10-17
  • 打赏
  • 举报
回复
谢谢先
halfdream 2003-10-17
  • 打赏
  • 举报
回复
做法比较麻烦些.直接使用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;


lwk_hlj 2003-10-17
  • 打赏
  • 举报
回复
你去去年的那本程序员杂志合订本上看看去,我记得上面有这方面的介绍
我的书不在这里,没有方法看
lwk_hlj 2003-10-17
  • 打赏
  • 举报
回复
楼主,你不应该用这种试,改个路子吧,因为是那个流就是二进制的,你写了之后,一样也是读不出来的
wellshddelphi 2003-10-16
  • 打赏
  • 举报
回复
我给楼住出出主义:把数据原样保存在数据库中,只是要用的时候在把它转换成你要的格式就可以了免得把简单的问题复杂化----这就是贡献,哈哈...
liufuyahong 2003-10-16
  • 打赏
  • 举报
回复
TClientDataset.LoadFromFile//加载XML

TClientDataset.SavetoSave;//保存为XML

用Visiual Studio.net 能很清楚的显示
hstod 2003-10-16
  • 打赏
  • 举报
回复
按楼上所说的显示不出来
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;
Delphi_Li 2003-10-16
  • 打赏
  • 举报
回复
XML格式就是有格式的文本格式!!!

使用TStirngList将数据装载然后使用SaveToFile方法保存之!!!

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧