转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ADO数据与XML数据间的转换的类(ASP实现)         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1780 更新时间:2009/4/23 10:50:36


当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用
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_sE

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


[Web开发]一个关于ASP运行时间计算的代码  [Web开发]ASP:检测含有中文字符串的实际长度
[Web开发]asp 中英文字符长度检测判断函数  [Web开发]安全维护 IIS asp 站点的高级技巧
[Access]ASP&SQL让select查询结果随机排序的实现方法  [Web开发]ASP字符串截取函数
[Web开发][asp]关键词只替换一次的写法  [Web开发]XML与HTML在语法上的主要区别详解
[Web开发]Asp无组件生成缩略图方法详解  [Web开发]asp编程中优化数据库方法详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台