UNICODE и OLE DB
От: Artem_S  
Дата: 30.10.02 18:14
Оценка:
Всем привет!

Наткнулся на проблему:
Есть база Access (ее изменять нельзя), к примеру в ней таблица 'Customers' и поле 'Name', поле текстовое, соответственно Access держит его в Unicod'е, а размер поля равен 50 символов. При чтении данных из таблицы посредством OLE DB я получаю 50 байт вместо 50 символов и теряю половину данных . При этом все прекрасно работает на VC++ 7, но в 6-й версии — проблемы. Кто-нибудь знает как от этого избавиться????


Примерный код:
CDBPropSet pDBinit(DBPROPSET_DBINIT);
pDBinit.AddProperty(DBPROP_INIT_DATASOURCE, "C:\\customers.mdb");

CDataSource pDataSource;
pDataSource.Open("MS Jet.....", &pDBinit);

CSession pSession;
pSession.Open(pDataSource);

CCommand<CDynamicAccessor> pCmd;
pCmd.Open(pSession, "SELECT * FROM customers");
CString sString = (LPCWSTR)pCmd.GetValue("Name");



С уважением, Артем....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.