ADO数据XML数据间的转换的类Word格式.docx
- 文档编号:22691411
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:22
- 大小:19.99KB
ADO数据XML数据间的转换的类Word格式.docx
《ADO数据XML数据间的转换的类Word格式.docx》由会员分享,可在线阅读,更多相关《ADO数据XML数据间的转换的类Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
OrderbynLabelID"
aSQL(1,0)="
PubUser"
aSQL(1,1)="
Select*fromPubUserwherecUserNamelike'
OrderbynUserID"
setoXMLData=NewTransformData
CallExport()
CallImport()
setoXMLData=nothing'
//当对象属性有默认值(default())时,可以不用在赋值
SubExport() '
//导出数据
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"
) XML文件编码类型
oXMLData.Export(oDbConn)
//导出数据过程
IF(oXMLData.nErrCode<
>
0)Then '
nErrCode(错误代码)为0,运行成功
Response.WriteoXMLData.GetErrExegesis(oXMLData.nErrCode)
'
nErrCode(错误代码),通过方法GetErrExegesis()获得注释
EndIF
EndSub
SubImport() '
//导入数据
oXMLData.sXMLFile ="
必须 数据源XML文件(包含相对路径)
oXMLData.sVacancyCols="
nLabelID"
必须 指定某些字段的值可以不导入(屏蔽字段)
'
格式 "
nID,dDate"
(以‘,’分隔字段)
oXMLData.Import(oDbConn)
IF(oXMLData.nErrCode=0)Then
Response.Write"
数据导入成功!
Else
EndSub
%>
类的代码:
TransformData.asp
ClassTransformData
*****************************************************
Copyright(c)2003
创建人:
moonpiazza
日 期:
2003.5.21
描 述:
ADO数据与XML数据间的转换(ASP实现)
版 本:
1.0
功 能:
ADO数据(表的基本数据)与XML数据间的相互转换
待改进:
表间数据的关联性(通用),数据量大时速度问题
版权:
欢迎改进,翻版不究 :
_)
*****************************************************'
公共方法:
Export,Import,GetErrExegesis
=============================公共变量 End=============================
Privatem_oXMLDOM
Privatem_oXSLDOM
=============================公共变量Begin=============================
=============================错误代码定义Begin=============================
Privatem_nErrCode_NotArray
Privatem_nErrCode_XMLDOM
Privatem_nErrCode_ReadData
Privatem_nErrCode_WriteData
Privatem_nErrCode_Save
Privatem_nErrCode_EnsFile
Privatem_nErrCode_ErrFile
=============================错误代码定义 End=============================
=============================属性定义Begin=============================
Privatem_aSQlData
Privatem_bIsSave
Privatem_bIsOutput
Privatem_sSaveFileName
Privatem_sSaveFilePath
Privatem_sXMLFile
Privatem_sVacancyCols
Privatem_nErrCode
Privatem_sEncoding
Privatem_sImportSQL
属性:
aSQlData
状态:
可写
类型:
2维数组
描述:
SQL语句数组,1维是表名称,2维是相应SQL语句
PublicPropertyLetaSQlData(ByRefp_aSQlData)
m_aSQlData=p_aSQlData
EndProperty'
bIsSave
数字(0,1)default
(1)
导出数据时,是否保存为XML文件
PublicPropertyLetbIsSave(ByRefp_bIsSave)
m_bIsSave=Cint(p_bIsSave)
bIsOutput
数字(0,1)default(0)
导出数据时,是否显示XML数据
PublicPropertyLetbIsOutput(ByRefp_bIsOutput)
m_bIsOutput=Cint(p_bIsOutput)
sSaveFileName
可写,可读
字符串default(GetRndFileName())
导出数据时,如果保存XML数据,XML文件名称
PublicPropertyLetsSaveFileName(ByRefp_sSaveFileName)
m_sSaveFileName=p_sSaveFileName
EndProperty
PublicPropertyGetsSaveFileName()
sSaveFileName=m_sSaveFileName
sSaveFilePath
字符串default("
)
导出数据时,如果保存XML数据,XML文件路径(相对路径)
PublicPropertyLetsSaveFilePath(ByRefp_sSaveFilePath)
m_sSaveFilePath=p_sSaveFilePath
PublicPropertyGetsSaveFilePath()
sSaveFilePath=m_sSaveFilePath
sXMLFile
字符串
导入数据时,数据源XML文件(包含相对路径)
PublicPropertyLetsXMLFile(ByRefp_sXMLFile)
m_sXMLFile=p_sXMLFile
sVacancyCols
格式 "
导入数据时,指定某些字段的值可以不导入(屏蔽字段)
PublicPropertyLetsVacancyCols(ByRefp_sVacancyCols)
m_sVacancyCols="
"
&
p_sVacancyCols&
"
nErrCode
可读
数字default(0)
错误代码,可通过方法GetErrExegesis(ByRefp_nErrCode)获得注释
PublicPropertyGetnErrCode()
nErrCode=m_nErrCode
sEncoding
XML文件编码类型
PublicPropertyLetsEncoding(ByRefp_sEncoding)
m_sEncoding=p_sEncoding
sImportSQL
导入数据时,生成的SQL语句
PublicPropertyGetsImportSQL()
sImportSQL=m_sImportSQL
=============================属性定义End=============================
初始化类
PrivateSubClass_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=7m_bIsSave =1
m_bIsOutput =0
m_sSaveFilePath ="
m_sSaveFileName ="
m_sXMLFile ="
m_sVacancyCols ="
m_nErrCode =m_nErrCode_NotErr
m_sEncoding ="
EndSub'
注销类
PrivateSubClass_Terminate()
Setm_oXMLDOM=Nothing
Setm_oXSLDOM=Nothing
EndSub'
=============================数据导出Begin=============================
过程:
Export(ByRefp_oDbConn)
导出数据
参数:
p_oDbConn:
数据库连接对象
PublicSubExport(ByRefp_oDbConn)
DimnI,nMaxI
DimsTableName,sSQL
DimsDataXML,sXSLStr
DimsXMLStr
If(NotIsArray(m_aSQlData))Then
m_nErrCode=m_nErrCode_NotArray
ExitSub
EndIf
ONERRORRESUMENEXT
Setm_oXSLDOM=Server.CreateObject("
Microsoft.XMLDOM"
Setm_oXMLDOM=Server.CreateObject("
IfErr.Number<
0Then
m_nErrCode=m_nErrCode_XMLDOM
sXSLStr =GetXSL()
m_oXMLDOM.async=false
m_oXSLDOM.async=false
m_oXSLDOM.loadxml(sXSLStr)
sDataXML="
?
xmlversion='
1.0'
encoding='
m_sEncoding&
sDataXML=sDataXML&
DataBase>
nMaxI=Ubound(m_aSQlData,1)
FornI=0TonMaxI
sTableName=m_aSQlData(nI,0)
If(Len(sTableName)>
0)Then
sSQL =m_aSQlData(nI,1)
sXMLStr =GetDataXML(sTableName,sSQL,p_oDbConn)
IF(m_nErrCode>
m_nErrCode_NotErr)Then
ExitSub
EndIF
sDataXML=sDataXML&
sXMLStr
EndIf
Next
/DataBase>
IF(m_bIsOutput)Then
CallResponseXML(sDataXML)
IF(m_bIsSave)Then
CallSaveDataXML(sDataXML)
函数:
GetRndFileName()
获得随机名称,由当前时间和7位随机数字构成
PrivateFunctionGetRndFileName()
DimnMax,nMin
DimsRnd,sDate
Randomize
nMin=1000000
nMax=9999999
sRnd=Int(((nMax-nMin+1)*Rnd)+nMin)
sDate=Replace(Replace(Replace(now(),"
-"
"
),"
:
),"
GetRndFileName="
_"
sDate&
sRnd&
.xml"
EndFunction'
GetXSL()
获得XSL文件字符串
PrivateFunctionGetXSL()
DimsXSLStr
sXSLStr="
sXSLStr=sXSLStr&
xsl:
stylesheetversion='
xmlns:
xsl='
http:
//www.w3.org/1999/XSL/Transform'
s='
uuid:
BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
dt='
C2F41010-65B3-11d1-A29F-00AA00C14882'
rs='
urn:
schemas-microsoft-com:
rowset'
z='
#RowsetSchema'
outputomit-xml-declaration='
yes'
/>
templatematch='
/'
for-eachselect='
/xml/rs:
data/z:
row'
elementname='
Row'
@*'
attributename='
{name()}'
value-ofselect='
.'
/xsl:
attribute>
for-each>
element>
template>
sX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADO 数据 XML 转换