' p_sXMLStr : XML格式的字符串
'*****************************************************
Private Sub SaveDataXML(ByRef p_sXMLStr)
Dim sFileInfo
If (Len(m_sSaveFileName) = 0) Then
m_sSaveFileName = GetRndFileName()
End If
If (Len(m_sSaveFilePath) = 0) Then
sFileInfo = m_sSaveFileName
Else
IF (Right(m_sSaveFilePath,1) = "/")Then
sFileInfo = m_sSaveFilePath & m_sSaveFileName
Else
sFileInfo = m_sSaveFilePath & "/" & m_sSaveFileName
End IF
End If
m_oXMLDOM.loadxml(p_sXMLStr)
ON ERROR RESUME NEXT
m_oXMLDOM.save ( Server.MapPath(sFileInfo) )
If Err.Number <>0 Then
m_nErrCode = m_nErrCode_Save
Exit Sub
End If
End Sub
'*****************************************************
' 过程: ResponseXML(ByRef p_sXMLStr)
' 描述: 输出XML格式的字符串到浏览器
' 参数:
' p_sXMLStr : XML格式的字符串
'*****************************************************
Private Sub ResponseXML(ByRef p_sXMLStr)
Response.CharSet = m_sEncoding
Response.ContentType = "text/xml"
Response.write p_sXMLStr
End Sub
'============================= 数据导出 End =============================
'============================= 数据导入 Begin =============================
'*****************************************************
' 过程: Import(ByRef p_oDbConn)
' 描述: 导入数据
' 参数:
' p_oDbConn: 数据库连接对象
'
'*****************************************************
Public Sub Import(ByRef p_oDbConn)
Dim oRootNode
If (Len(m_sXMLFile) < 1) Then
m_nErrCode = m_nErrCode_EnsFile
Exit Sub
End If
ON ERROR RESUME NEXT
Set m_oXMLDOM = Server.CreateObject("Microsoft.XMLDOM")
If Err.Number <>0 Then
m_nErrCode = m_nErrCode_XMLDOM
Exit Sub
End If
m_oXMLDOM.async = false
m_oXMLDOM.load( Server.MapPath(m_sXMLFile) )
If Err.Number <>0 Then
m_nErrCode = m_nErrCode_EnsFile
Exit Sub
End If
If (Len(m_oXMLDOM.xml) < 1) Then
m_nErrCode = m_nErrCode_ErrFile
Exit Sub
End If
Set oRootNode = m_oXMLDOM.documentElement
Set m_oXMLDOM = Nothing
m_sImportSQL = GetImportSQL(oRootNode)
Set oRootNode = Nothing
Call p_oDbConn.Execute(m_sImportSQL)
If Err.Number <>0 Then
m_nErrCode = m_nErrCode_WriteData
Exit Sub
End If
End Sub
'*****************************************************
' 函数: GetImportSQL(ByRef p_oDataBase)
' 描述: 获得将XML数据转换为SQL后的字符串
' 参数:
' p_oDataBase : XML文件的根节点
'
'*****************************************************
Private Function GetImportSQL(ByRef p_oDataBase)
Dim oTable, oRow, oDatas, oData
Dim sColNames, sColValues
Dim sColName
Dim sSQL
sSQL = ""
For Each oTable In p_oDataBase.childNodes
For Each oRow In oTable.childNodes
Set oDatas = oRow.selectNodes("@*")
sColNames = ""
sColValues = ""
For Each oData In oDatas
sColName = oData.nodeName
If ( Instr( Lcase(Cstr(m_sVacancyCols)), Lcase(Cstr("," & sColName & ",")) ) < 1) Then
sColNames = sColNames & sColName & ", "
sColValues = sColValues & "'" & oData.nodeValue & "', "
End If
Next
sColNames = "(" & Left(sColNames,Len(sColNames)-2) & ") "
sColValues = "(" & Left(sColValues,Len(sColValues)-2) & ") "
sSQL = sSQL & " Insert Into " & oTable.nodeName
sSQL = sSQL & " " & sColNames & " Values " & sColValues & " ; "
Next
Next
Set oData = Nothing
Set oDatas = Nothing
Set oRow = Nothing
Set oTable = Nothing
GetImportSQL = sSQL
End Function
'============================= 数据导入 End =============================
'*****************************************************
' 函数: GetErrExegesis(ByRef p_nErrCode)
' 描述: 获得错误代码的注释
' 参数:
' p_oDataBase : XML文件的根节点
'
'*****************************************************
Public Function GetErrExegesis(ByRef p_nErrCode)
Dim sExegesis
Dim nErrCode
nErrCode = Cint(p_nErrCode)
Select Case (nErrCode)
Case m_nErrCode_NotErr
sXSLStr = "运行成功!"
Case m_nErrCode_NotArray
sXSLStr = "属性: SQL语句数组 不正确!"
Case m_nErrCode_XMLDOM
sXSLStr = "不能创建XML文档,服务器必须支持MSXML!"
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




