ADO Recordset 持久化 格式 XML 读取 保存

王朝asp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

<!-- 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, "<", "&lt;")

XmlString = Replace(XmlString, ">", "&gt;")

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

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有