我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp未分类 > ADO数据与XML数据间的转换的类
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
ASP教程十一、调试ASP脚本(10-23)
在JSP中访问数据库大全(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

ADO数据与XML数据间的转换的类 

作者:佚名   来源:一亩三分地   点击:   日期:2007-03-28

当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用
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 '%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)
' 描述: 错误


文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。