Я борюсь с этим почти неделю и до сих пор не нашел решения -.-
Моя цель — получить XML от SQL Server, запросив оператор «FOR XML», взяв этот XML как строку/поток для пересылки в XSLT Transformer и представив результат в виде HTML.
Плохо то, что я должен использовать среду веб-сервера: IBM Domino 8.5.2, которая обычно использует базы данных Lotus Script и Lotus Notes для создания веб-сайтов.
Но теперь производительность баз данных Notes зашла в тупик, если говорить о больших базах данных, таких как статистика посещений нашего веб-сайта, которые хранят миллионы посещений в виде наборов данных. Поэтому мы решили перейти на сервер mssql2008, который может быстрее предоставлять результаты с пользовательской фильтрацией.
Мне действительно удалось установить соединение с SQL Server, отправить запрос и получить результат в виде xml. Но сейчас? :) Кажется, что SQL Server предоставляет свои результаты запроса «для xml» как своего рода собственный странный тип данных двоично-закодированных символов, которые не имеют смысла при их печати или сохранении в файл. И Lotus Script (в значительной степени VBScript), похоже, не имеет возможности обрабатывать этот тип данных xml.
Я пробовал все, что мог найти, чтобы получить результат - Lotus, встроенный в класс ODBC, LCConnection через OleDB, ADO Connection через OleDB... но каждая попытка заканчивается кучей нечитаемых данных.
Я мог бы представить веб-службу между домино и SQL Server, подготавливающую данные в виде строки для моего сценария домино, но я хотел бы избежать ненужных накладных расходов.
Можете ли вы указать в инструкции sql, какой тип данных вы хотите получить в результате xml? точно так же, как cast()/convert() для полей, но для всего результата xml? Чтобы я мог просто прочитать результат как поле text/varchar?
Спасибо, Крис