2012-02-03 3 views
1

Я выполняю запрос в xml и преобразовываю его в XML-файл с FOR XML EXPLICIT. И это работает, если только я не пытаюсь много запросов на файлы.sql server FOR XML имеет лимит символов?

Если я запрашиваю записи с идентификаторами от 400 до 500, это работает, если я пытаюсь запросить записи с идентификаторами от 500 до 600, это работает, но если я попытаюсь запросить от 400 до 600, это не сработает.

Это ошибка:

Unable to show XML. The following error happened: '', hexadecimal value 0x1E, is an invalid character. Line 1457, position 107.

One solution is to increase the number of characters retrieved from the server for XML data. To change this setting, on the Tools menu, click Options.

Хорошо? и что потом? Где мне нужно внести изменения в настройки точно?

Редактирование: установка данных XML неограниченно по результатам запроса> SQL Server> Результаты для сетки до неограниченного числа не работают.

Edit: вернулся с кодом:

<ExceptionDocument><Error><Message>'&#x1E;', hexadecimal value 0x1E, is an invalid character. Line 953, position 107.</Message><StackTrace> at System.Xml.XmlTextReaderImpl.Throw(Exception e) 
    at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) 
    at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Char[] data, Int32 length, Int32 invCharPos) 
    at System.Xml.XmlTextReaderImpl.ParseCDataOrComment(XmlNodeType type, Int32&amp; outStartPos, Int32&amp; outEndPos) 
    at System.Xml.XmlTextReaderImpl.ParseCDataOrComment(XmlNodeType type) 
    at System.Xml.XmlTextReaderImpl.ParseElementContent() 
    at System.Xml.XmlTextReaderImpl.Read() 
    at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) 
    at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) 
    at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) 
    at System.Xml.XmlDocument.Load(XmlReader reader) 
    at System.Xml.XmlDocument.LoadXml(String xml) 
    at SitePublisher.Base.BasePub.ExecuteCommand(String sql, Int32 attempt, NameValueCollection parameters)</StackTrace><InnerException /></Error></ExceptionDocument> 

Edit: Я предполагаю, 0x1E это конец файла символа.

Редактировать: Я думаю, что мое первое утверждение могло быть неправильным и что я имею дело с поврежденными данными. Он всегда возвращает ошибку для записи 426.

+0

Нет, это не так, если я пытаюсь выполнить его через код (C#), я получаю ту же ошибку. – NomenNescio

+0

Невозможно получить такую ​​же ошибку от ADO .NET в C#. Отправьте результат исключения. Я очень сомневаюсь, что он говорит «изменить этот параметр в меню« Инструменты »... – Yuck

+0

Ну, запрос выполняется, но он возвращает мусор с ошибкой 0x1E. Я добавлю. – NomenNescio

ответ

1

Это, по-видимому, действительно недействительный персонаж, он появился как «RS» в блокноте ++. Ошибка, которую студия управления SQL дала мне полностью отключить.

Смежные вопросы