ADO数据与XML数据间的转换的类
2008-02-23 05:27:33来源:互联网 阅读 ()
当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用
1.SQL查询分析器?
但其往往不直观,查找某个关键字又需要重新执行新的SQL.
2.SQLXML模板?
但又不一定有权限建立新的虚拟目录,且某些SQL语句SQLXML模板不支持
数据拆离时也有相似问题。
尤其当不同网络,不同环境,需要重新导入数据,进行分析或拆离,困难尤为明显。
能不能有一种方法,可以将数据脱离于数据库进行分析,需要时再导入到数据库中?
XML是个很好的选择!
ADO本身支持数据到XML的转换,只需要对其格式进行解析,成为自己的XML文件通用格式,就可以进行本地分析
而对通用XML格式进行数据库映射,就可完成数据重新导入数据库的工作.
下面是一个ADO数据(表的基本数据)与XML数据间的相互转换的类(ASP实现),初步完成表数据的导入、导出。
通用表间关系映射(通过XSD描述),考虑之中,希望各位赐教指点,不胜感激.
一个调用类的例子:
example.asp
<!--#include file="transformXML.asp"-->
<%
Dim aSQL(1,1)
Dim oXMLData
'====== 连接数据库过程 ======
'获得数据库连接对象 oDbConn
'====== 连接数据库过程 ======
aSQL(0,0) = "PubLable"
aSQL(0,1) = "Select * from PubLabel where cLabelName like '玞%' Order by nLabelID"
aSQL(1,0) = "PubUser"
aSQL(1,1) = "Select * from PubUser where cUserName like '玞%' Order by nUserID"
set oXMLData = New TransformData
Call Export()
'Call Import()
set oXMLData = nothing
' // 当对象属性有默认值(default())时,可以不用在赋值
Sub Export() ' // 导出数据
oXMLData.aSQlData = aSQL
' 必须 2维SQL语句数组
oXMLData.bIsSave = 1
' default(1) 是否保存为XML文件
oXMLData.bIsOutput = 1
' default(0) 是否显示XML数据
oXMLData.sSaveFileName = "Data.xml"
' default(当前时间加随机数) 如果保存XML数据,XML文件名称
oXMLData.sSaveFilePath = ""
' default("") 如果保存XML数据,XML文件路径(相对路径)
oXMLData.sEncoding = "gb2312"
' default("gb2312") XML文件编码类型
oXMLData.Export (oDbConn)
' // 导出数据过程
IF (oXMLData.nErrCode<>0) Then ' nErrCode(错误代码)为0,运行成功
Response.Write oXMLData.GetErrExegesis(oXMLData.nErrCode)
'nErrCode(错误代码),通过方法GetErrExegesis() 获得注释
End IF
End Sub
Sub Import() ' // 导入数据
oXMLData.sXMLFile = "Data.xml" ' 必须 数据源XML文件(包含相对路径)
oXMLData.sVacancyCols = "nLabelID" ' 必须 指定某些字段的值可以不导入(屏蔽字段)
' 格式 "nID,dDate" (以‘,’分隔字段)
oXMLData.Import (oDbConn)
IF (oXMLData.nErrCode=0) Then
Response.Write "数据导入成功!"
Else
Response.Write oXMLData.GetErrExegesis(oXMLData.nErrCode)
End IF
End Sub
%>
类的代码:
TransformData.asp
<%
Class TransformData
'*****************************************************
' Copyright (c) 2003
' 创 建 人 : moonpiazza
' 日 期 : 2003.5.21
' 描 述 : ADO数据与XML数据间的转换(ASP实现)
' 版 本 : 1.0
' 功 能 : ADO数据(表的基本数据)与XML数据间的相互转换
' 待 改 进 : 表间数据的关联性(通用),数据量大时速度问题
'
' 版 权 : 欢迎改进,翻版不究 :_)
'
'*****************************************************
'*****************************************************
' 公共方法: Export, Import, GetErrExegesis
'*****************************************************
'============================= 公共变量 End =============================
Private m_oXMLDOM
Private m_oXSLDOM
'============================= 公共变量 Begin =============================
'============================= 错误代码定义 Begin =============================
Private m_nErrCode_NotArray
Private m_nErrCode_XMLDOM
Private m_nErrCode_ReadData
Private m_nErrCode_WriteData
Private m_nErrCode_Save
Private m_nErrCode_EnsFile
Private m_nErrCode_ErrFile
'============================= 错误代码定义 End =============================
'============================= 属性定义 Begin =============================
Private m_aSQlData
Private m_bIsSave
Private m_bIsOutput
Private m_sSaveFileName
Private m_sSaveFilePath
Private m_sXMLFile
Private m_sVacancyCols
Private m_nErrCode
Private m_sEncoding
Private m_sImportSQL
'*****************************************************
' 属性: aSQlData
' 状态: 可写
' 类型: 2维数组
' 描述: SQL语句数组,1维是表名称,2维是相应SQL语句
'*****************************************************
Public Property Let aSQlData(ByRef p_aSQlData)
m_aSQlData = p_aSQlData
End Property
'*****************************************************
' 属性: bIsSave
' 状态: 可写
' 类型: 数字(0,1) default(1)
' 描述: 导出数据时,是否保存为XML文件
'*****************************************************
Public Property Let bIsSave(ByRef p_bIsSave)
m_bIsSave = Cint(p_bIsSave)
End Property
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:面向对象的ASP技术:思考与实践
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash