Здравствуйте, добрые люди!
Для ускорения формирования XML на основании данных хранимых в
MS SQL 2000
я делаю что-то вроде
CDataSource ds;
CSession ss;
CCommand<CNoAccessor, CStreamRowset> rs;
ds.OpenFromInitializationString(m_ConnectionString);
ss.Open(ds);
CHAR buffer[10000];
rs.Open(ss, L"SELECT 1 as Tag, NULL as Parent,
Customers.CustomerID as [Customer!1!CustomerID],
Customers.ContactName as [Customer!1!ContactName!element]
FROM Customers
ORDER BY [Customer!1!CustomerID]
FOR XML EXPLICIT
");
rs.m_spStream->Read(buffer, 10000, &realSize);
в результате я получаю данные в
ANSI кодировке, что отлично работает для английского языка,
для кирилицы же получаю набор "левых" символов
в
MSDN'е написано (
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcconAccessingXMLData.asp), цитирую
ICommand::Execute returns an ISequentialStream pointer, which is stored in m_spStream.
You then use the Read method to retrieve the (Unicode string) data in XML format.
Тоесть данные при вызове метода Read я должен получить в Unicode
В SQL Query Analyzer выводиться правиль