Этот набор записей не может быть сохранен в DOM как XML.
Некоторые данные столбца содержат специальные символы. Я могу прокручивать каждую запись и 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, есть ли в нем специальные символы или нет?
[EDIT] Добавлено изображение текста
[EDIT2] Попытка выполнить потоковую передачу набора записей после выполнения запроса:
К сожалению, я не очень далеко продвинулся с этим, при установке Charset выдало ошибку: "The parameter is incorrect"
, на самом деле ошибка возникает в строке oStream.ReadText
. Когда я комментирую набор символов, 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 & "]")
A Recordset saved in XML format is saved using UTF-8 format. When such a file is loaded into an ADO Stream, the Stream object will not attempt to open a Recordset from the stream unless the Charset property of the stream is set to the appropriate value for UTF-8 format.
Интересно, могут ли ваши специальные символы создавать поток в неподдерживаемом наборе символов. Вместо этого вы можете попробовать использоватьADODB.Stream
, что позволяет явно указать целевой набор символов. - person oracle certified professional   schedule 09.09.2014