ADO Recordset 持久化 格式 XML 读取 保存
发表于:2007-06-30来源:作者:点击数:
标签:
!-- METADATA TYPE=TypeLib UUID=00000200-0000-0010-8000-00AA006D2EA4 -- % Class DataSet Private Recordset Public TableName, FieldCount Public XmlString Private TableMap Private Sub Class_Initialize @# 设置 Initialize 事件。 Set Recordset = S
<!-- METADATA TYPE="TypeLib" UUID="00000200-0000-0010-8000-00AA006D2EA4" -->
<%
Class DataSet
Private Recordset
Public TableName, FieldCount
Public XmlString
Private TableMap
Private Sub Class_Initialize @# 设置 Initialize 事件。
Set Recordset = Server.CreateObject("ADODB.RecordSet")
Recordset.ActiveConnection = "Provider=MSDAOSP; Data Source=Msxml2.DSOControl;"
End Sub
Private Sub Class_Terminate @# 设置 Terminate 事件。
Set Recordset = Nothing
End Sub
Function ReadXml(Name, filespec)
TableName = Name
Recordset.Open(filespec)
End Function
Function GetXml()
Call GetTableMap()
Do While not Recordset.Eof
XmlString = XmlString + GetXmlRow(Recordset.Fields)
Recordset.MoveNext()
Loop
Recordset.Close
XmlString = XmlRow(TableName, XmlString)
GetXml = XmlString
End Function
Sub GetTableMap()
IF (not Recordset.Eof) Then
FieldCount = Recordset.Fields.Count - 2
Execute("ReDim TableMap("& FieldCount &")")
For i = 0 To FieldCount
TableMap(i) = Recordset.Fields.Item(i).Name
Next
End IF
End Sub
Function GetXmlRow(Item)
Dim XmlRowString
For i = 0 To FieldCount
XmlRowString = XmlRowString + XmlField(TableMap(i), Item(i).Value)
Next
GetXmlRow = XmlRow("Row", XmlRowString)
End Function
Function XMlEncode(XmlString)
XmlString = Replace(XmlString, "<", "<")
XmlString = Replace(XmlString, ">", ">")
XMlEnCode = XmlString
End Function
Function XmlField(NodeName, NodeValue)
XmlField = "<"+ NodeName +">"+ XMlEncode(NodeValue) +"</"+ NodeName +">"
End Function
Function XmlRow(NodeName, NodeValue)
XmlRow = "<"+ NodeName +">"+ NodeValue +"</"+ NodeName +">"
End Function
End Class
Dim ds : Set ds = new DataSet
Call ds.ReadXml( "News", Server.MapPath("news.xml") )
Response.ContentType = "text/xml"
Response.Write(ds.GetXml())
Set ds = Nothing
%>
原文转自:http://www.ltesting.net