分享
 
 
 

ADO数据与XML数据间的转换的类(ASP实现)

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用

1.SQL查询分析器?

但其往往不直观,查找某个关键字又需要重新执行新的SQL.

2.SQLXML模板?

但又不一定有权限建立新的虚拟目录,且某些SQL语句SQLXML模板不支持

数据拆离时也有相似问题。

尤其当不同网络,不同环境,需要重新导入数据,进行分析或拆离,困难尤为明显。

能不能有一种方法,可以将数据脱离于数据库进行分析,需要时再导入到数据库中?

XML是个很好的选择!

ADO本身支持数据到XML的转换,只需要对其格式进行解析,成为自己的XML文件通用格式,就可以进行本地分析

而对通用XML格式进行数据库映射,就可完成数据重新导入数据库的工作.

下面是一个ADO数据(表的基本数据)与XML数据间的相互转换的类(ASP实现),初步完成表数据的导入、导出。

通用表间关系映射(通过XSD描述),考虑之中,希望各位赐教指点,不胜感激.

一个调用类的例子:

example.asp

<!--#include file="transformData.asp"-->

<%

Dim aSQL(1,1)

Dim oXMLData

'====== 连接数据库过程 ======

'获得数据库连接对象 oDbConn

'====== 连接数据库过程 ======

aSQL(0,0) = "PubLable"

aSQL(0,1) = "Select * from PubLabel where cLabelName like '%abc%' Order by nLabelID"

aSQL(1,0) = "PubUser"

aSQL(1,1) = "Select * from PubUser where cUserName like '%abc%' 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

'*****************************************************

' 属性: bIsOutput

' 状态: 可写

' 类型: 数字(0,1) default(0)

' 描述: 导出数据时,是否显示XML数据

'*****************************************************

Public Property Let bIsOutput(ByRef p_bIsOutput)

m_bIsOutput = Cint(p_bIsOutput)

End Property

'*****************************************************

' 属性: sSaveFileName

' 状态: 可写,可读

' 类型: 字符串 default(GetRndFileName())

' 描述: 导出数据时,如果保存XML数据,XML文件名称

'*****************************************************

Public Property Let sSaveFileName(ByRef p_sSaveFileName)

m_sSaveFileName = p_sSaveFileName

End Property

Public Property Get sSaveFileName()

sSaveFileName = m_sSaveFileName

End Property

'*****************************************************

' 属性: sSaveFilePath

' 状态: 可写,可读

' 类型: 字符串 default("")

' 描述: 导出数据时,如果保存XML数据,XML文件路径(相对路径)

'*****************************************************

Public Property Let sSaveFilePath(ByRef p_sSaveFilePath)

m_sSaveFilePath = p_sSaveFilePath

End Property

Public Property Get sSaveFilePath()

sSaveFilePath = m_sSaveFilePath

End Property

'*****************************************************

' 属性: sXMLFile

' 状态: 可写

' 类型: 字符串

' 描述: 导入数据时,数据源XML文件(包含相对路径)

'*****************************************************

Public Property Let sXMLFile(ByRef p_sXMLFile)

m_sXMLFile = p_sXMLFile

End Property

'*****************************************************

' 属性: sVacancyCols

' 状态: 可写

' 类型: 字符串 default("")

' 格式 "nID,dDate" (以‘,’分隔字段)

' 描述: 导入数据时,指定某些字段的值可以不导入(屏蔽字段)

'*****************************************************

Public Property Let sVacancyCols(ByRef p_sVacancyCols)

m_sVacancyCols = "," & p_sVacancyCols & ","

End Property

'*****************************************************

' 属性: nErrCode

' 状态: 可读

' 类型: 数字 default(0)

' 描述: 错误代码,可通过方法GetErrExegesis(ByRef p_nErrCode) 获得注释

'*****************************************************

Public Property Get nErrCode()

nErrCode = m_nErrCode

End Property

'*****************************************************

' 属性: sEncoding

' 状态: 可写

' 类型: 字符串 default("gb2312")

' 描述: XML文件编码类型

'*****************************************************

Public Property Let sEncoding(ByRef p_sEncoding)

m_sEncoding = p_sEncoding

End Property

'*****************************************************

' 属性: sImportSQL

' 状态: 可读

' 类型: 字符串 default("gb2312")

' 描述: 导入数据时,生成的SQL语句

'*****************************************************

Public Property Get sImportSQL()

sImportSQL = m_sImportSQL

End Property

'============================= 属性定义 End =============================

'*****************************************************

' 初始化类

'*****************************************************

Private Sub Class_Initialize()

Server.ScriptTimeout = 1000

m_nErrCode_NotErr = 0

m_nErrCode_NotArray = 1

m_nErrCode_XMLDOM = 2

m_nErrCode_ReadData = 3

m_nErrCode_WriteData= 4

m_nErrCode_Save = 5

m_nErrCode_EnsFile = 6

m_nErrCode_ErrFile = 7

m_bIsSave = 1

m_bIsOutput = 0

m_sSaveFilePath = ""

m_sSaveFileName = ""

m_sXMLFile = ""

m_sVacancyCols = ""

m_nErrCode = m_nErrCode_NotErr

m_sEncoding = "gb2312"

End Sub

'*****************************************************

' 注销类

'*****************************************************

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有