Sql Server表生成外部XML文件,开发工具Delphi

wblong 2003-10-20 12:08:27
1、用Delphi的ADODATASET或ADOQUERTY执行下面一句查询后  
  select * from t_account for xml raw
不知怎样将得到的XML流保存为一个外部XML文件(要求是程序实现);

2、如果用用Delphi的ADODATASET或ADOQUERTY执行下面一句查询  
  select * from t_account
再将SAVETOFILE();可以得到XML文件,但字段值都是单引号引起来的,
标准的XML文件值都应该用双引号,所以在用Sqlserver中的OPENXML方法时,
要先替换字符串,对XML大文件进行的效果可想而知,字符串替换效率很低,
时间长,这种方法的最大问题是怎样避免单引号,而是双引号。

3、有没有什么更好的方法,我遇到的表有100多个字段,数据20万。
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光易水 2003-10-21
  • 打赏
  • 举报
回复

不熟悉Delphi,下面方法测试一下

1.
adoRs.save() mothod
a. 可以将rs结果集保存成外部xml文件
b. 将结果集保存到xmldom对象,经过数据处理后在调用xmldom.save()方法保存成xml文件

2. 调用用Sqlserver中的OPENXML方法不需要替换字符串.
使用OPENXML方前法需要调用过程sp_xml_preparedocument获得xml文档句柄
只要是有效的xml文本即可
Example: SQL帮助==>索引==>关键字(OpenXML extension)


:_)
wblong 2003-10-20
  • 打赏
  • 举报
回复
to :Yifan(最爱黑夜的鸟)
exec master..xp_cmdshell 是以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。
但Select不是内部或外部命令,也不是可运行的程序或批处理文件,所以应该是不正确吧,
是不是我理解错了。你的写法语法上还存在错误呢!
请教你有成功执行吗?
伊凡yifan 2003-10-20
  • 打赏
  • 举报
回复
exec xp_cmdshell ' "select * from talbe queryout ' for xml c:\xxx.xml

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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