如何将数据库中某个表中的数据导出为XML??

Eastunfail 2003-04-23 08:47:24
如题~~~~

反过来呢?

...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishzone 2003-04-24
  • 打赏
  • 举报
回复
sql server 2000 支持xml直接导出,你在帮助文件里搜索一下for xml就知道了。

FOR 子句
FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。

语法
[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ]
}
]

参数
BROWSE

指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。有关更多信息,请参见浏览模式。



说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 <lock_hint> HOLDLOCK。


FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。

XML

指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。有关 XML 数据和 SQL Server 的更多信息,请参见使用 FOR XML 检索 XML 文档。

RAW

获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 <row /> 作为元素标记。有关更多信息,请参见使用 RAW 模式。

AUTO

以简单的嵌套 XML 树返回查询结果。在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素特性。有关更多信息,请参见使用 AUTO 模式。

EXPLICIT

指定显式定义所得到的 XML 树的形状。使用此种模式,要求以一种特定的方式编写查询,以便显式指定有关期望的嵌套的附加信息。有关更多信息,请参见使用 EXPLICIT 模式。

XMLDATA

返回架构,但不将根元素添加到结果中。如果指定了 XMLDATA,它将被追加到文档上。

ELEMENTS

指定列作为子元素返回。否则,列将映射到 XML 特性。

BINARY BASE64

指定查询返回二进制 base64 编码格式的二进制数据。使用 RAW 和 EXPLICIT 模式检索二进制数据时,必须指定该选项。这是 AUTO 模式中的默认值。

online 2003-04-24
  • 打赏
  • 举报
回复
Option Explicit

Dim conDB As New ADODB.Connection

Private Sub cmdGetData_Click()
' Get inventory data
Dim rsInventory As New ADODB.Recordset
Dim stmInventory As New ADODB.Stream
' set db connection
conDB.ConnectionString = ("Provider=SQLOLEDB.1;Server=Pinatubo;User ID=training; PWD=password;Initial Catalog=XMLTraining;")
conDB.Open

' set recordset
rsInventory.Open "tblInventory", conDB, adOpenDynamic, adLockOptimistic
rsInventory.Save stmInventory, adPersistXML
' Save ADO XML to file
stmInventory.SaveToFile App.Path & "\inventory.xml", adSaveCreateOverWrite
' dispaly xml file to UI
wbXML.Navigate App.Path & "\inventory.xml"
' close database connection
conDB.Close
End Sub

Private Sub cmdGetDetail_Click()
' Get product detail
Dim rsProductDetail As New ADODB.Recordset
Dim stmProduct As New ADODB.Stream

' Set connection string
conDB.ConnectionString = ("Provider=SQLOLEDB.1;Server=Pinatubo;User ID=training; PWD=password;Initial Catalog=XMLTraining;")
conDB.Open

' set recordset
rsProductDetail.Open "SELECT *, tblProductDetail.* FROM tblInventory INNER JOIN " & _
"tblProductDetail ON tblInventory.fldProductID = tblProductDetail." & _
"fldProductID", conDB, adOpenDynamic, adPersistXML
rsProductDetail.Save stmProduct, adPersistXML

' Save ADO XML file to disk
stmProduct.SaveToFile App.Path & "\ProductDetail.xml", adSaveCreateOverWrite
' Load xml document in UI
wbXML.Navigate App.Path & "\ProductDetail.xml"
' Close database connection string
conDB.Close
End Sub
chenyu5188 2003-04-24
  • 打赏
  • 举报
回复
你可以使用VB的ADO对对象来搞定。
你首先要在VB菜单中:
“工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.X Library”
注:2.X为版本号,如果你机子上有高版本的就用高版本的,如:2.5或2.6的

示例:
dim cn as new adodb.Connection
dim rs as new adodb.recordset
dim sqlstr as string
cn.open "Provider=SQLOLEDB;Driver={SQL Server};Server=Server;Uid=sa" & _
";Pwd=1;Database=data"
rs.cursorlocation=aduseclient
rs.open "select * from XXX",cn,3,3
rs.save "d:\mydata\data.rst",adPersistXML'保存
rs.close
rs.open "d:\mydata\data.rst",cn,AdOpenDynamic,AdLockBatchOptimistic,adCmdFile'打开
msgbox "共有:" & rs.recordcount & "条记录!!!"
rs.close
set rs=nothing
cn.close
set cn=nothing

lihonggen0 2003-04-24
  • 打赏
  • 举报
回复
select * from table for xml auto
lihonggen0 2003-04-24
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim strmResults As New ADODB.Stream
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim cnstr As String
cnstr = "Provider = SQLOLEDB.1;Password=121231;Persist Security Info=True;User ID=sa;Initial Catalog=zydb;Data Source=wzsswz"
cn.ConnectionString = cnstr
cn.Open
Set cmd.ActiveConnection = cn
cmd.CommandText = "select * from company for XML auto"
strmResults.Open
cmd.Properties("Output Stream").Value = strmResults
cmd.Properties("xml root") = "root"
cmd.Execute , , adExecuteStream
strmResults.Position = 0
strmResults.SaveToFile App.Path & "\outfile.xml"
strmResults.Close
Set strmResults = Nothing
End Sub

网络老男孩了 2003-04-23
  • 打赏
  • 举报
回复
搜索一下以前的帖子

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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