当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用 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编程中优化数据库方法详解
|