VBscript Record устанавливает вывод данных с XML в виде байтового массива.Ошибка выполнения Microsoft VBScript: неверный вызов процедуры или аргумент - PullRequest
0 голосов
/ 15 октября 2011
sub generateCategoryXML_helper()

dim FSO, fileOut
set FSO = CreateObject("Scripting.FileSystemObject")
set fileOut = FSO.CreateTextFile(Server.MapPath("categoryTree.xml"), True)

fileOut.WriteLine("<?xml version=""1.0"" encoding=""UTF-8""?>")

set RS_categoryXML = callStoredProcedure("generateCategoryXML", null) 

while not RS_categoryXML.EOF

    fileOut.Write(RS_categoryXML(0))

    RS_categoryXML.MoveNext

wend

end sub

fileOut.Write (RS_categoryXML (0)) выдает ошибку: Ошибка времени выполнения Microsoft VBScript: неверный вызов процедуры или аргумент

RS_categoryXML (0) содержит документ XML.RS_categoryXML (0) хранится в виде байтового массива.Зачем?Это должна быть длинная строка, которую я могу записать в файл, но по какой-то причине он хранится в виде байтового массива и не может быть выведен.

Спасибо,

Томас

1 Ответ

1 голос
/ 17 октября 2011

RS_categoryXML (0) хранится в виде байтового массива.Почему?

Вы не показали нам ничего, относящегося к этому, поэтому трудно сказать.Мы понятия не имеем, что такое SQL в "generateCategoryXML" или даже какой движок базы данных вы используете (включая его версию).

При этом я угадаю, что у вас есть байтовый массив, содержащий xml, уже закодированный вUTF8.Я также предполагаю, что в наборе записей только одна запись (иначе в XML-файле, который вы пытаетесь создать, будет отсутствовать корневой элемент).

Другая проблема, с которой вы столкнулись, - это попытка использовать FSO длянаписать XML-файл в кодировке UTF8, но FSO не может обработать UTF8.

Мой совет - отказаться от использования FSO и вместо этого переключиться на ADODB.Stream, что позволит вам записывать байты непосредственно в поток исохраните файлЯ даже не стал бы беспокоиться о декларации xml, она действительно полезна только при указании кодировки, отличной от UTF8.

...