ADO Recordset无法保存到DOM XML中

时间:2014-09-09 01:09:24

标签: xml dom vbscript asp-classic adodb

此记录集无法以XML格式保存到DOM中。

某些列数据中包含特殊字符。我可以遍历每个记录和Response.Write()字段而不会发生错误。

Set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open Application("conn_string")
Set objCommand = Server.CreateObject("ADODB.Command")
Set objDOM = Server.CreateObject("Msxml2.DOMDocument.3.0")

objCommand.ActiveConnection = Application("conn_string")

spQry = "SP_QUERY"
objCommand.CommandText = spQry
objCommand.CommandType = adCmdStoredProc

Set objRs = objCommand.Execute

objRS.save objDOM, adPersistXML //Error occurs here
Set objCommand = Nothing
objRS.Close
adoCn.Close
Set objRS = Nothing
  

错误:未知错误

如果我重新输入数据库中的文本,从而摆脱了特殊字符,一切正常。

我尝试添加以下内容以查看它是否有帮助,但到目前为止没有运气:

Response.CodePage = 65001
Response.Charset="UTF-8"

有没有人知道如何将此记录集保存到DOM中是否有特殊字符?

[编辑] 添加了文字图片 enter image description here

[EDIT2] 执行查询后尝试传输记录集:

不幸的是,我没有做到这一点,在设置Charset时出现错误:"The parameter is incorrect",错误实际发生在oStream.ReadText行。当我注释掉Charset时,最后的Response.Write只显示方括号。

Set objRs = objCommand.Execute

sXML = ""

Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Charset = "utf-8" //This produced an error: The parameter is incorrect 

oRecordset.save oStream, adPersistXML
oStream.Position = 0

sXML = oStream.ReadText 

oStream.Close 
Set oStream = Nothing

Response.Write("[" & sXML & "]")

1 个答案:

答案 0 :(得分:0)

我找不到显示数据的方法。所以我手动修改了db中的文本,因为只有4条记录。

当处理并插入或更新表单数据时,我最终在数据输入端解决了这个问题。

我通过文本循环分析每个字符剥离所有非键盘字符,产生一个干净的字符串。