Как конвертировать из COleVariant в CString...
От: Gluk  
Дата: 17.07.02 12:55
Оценка:
Подскажите пожалуйста, а то понадобилось вывести TextOut'ом содержимое ячеек базы DAO...
Re: Как конвертировать из COleVariant в CString...
От: Vi2 Удмуртия http://www.adem.ru
Дата: 17.07.02 13:07
Оценка:
Здравствуйте Gluk, Вы писали:

G>Подскажите пожалуйста, а то понадобилось вывести TextOut'ом содержимое ячеек базы DAO...


COleVariant strdata; // это данные для примера
CString     str;     // это данные для примера

// если не уверены, что в COleVariant-е строка, то
    strdata.ChangeType(VT_BSTR);
// если уверены, то ничего этого не надо

if( strdata.vt == VT_BSTR )
    str = strdata.bstrVal;
else
    error "не смогли получить строку";
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Как конвертировать из COleVariant в CString...
От: Gluk  
Дата: 18.07.02 01:43
Оценка:
Большое спасибо конечно, но в результате выводятся правильно только числа, а вместо остальных символов одни — ????
Может как то надо конвертировать?
Заранее благодарен!
Re[3]: Как конвертировать из COleVariant в CString...
От: Lion Россия  
Дата: 18.07.02 02:03
Оценка:
А я делал так:

Set.GetFieldValue("...", Value);
CString    strValue=Value.pbVal;


Все работает.
Re[2]: Как конвертировать из COleVariant в CString...
От: Агапов Андрей  
Дата: 18.07.02 10:24
Оценка:
Vi2>
Vi2>COleVariant strdata; // это данные для примера
Vi2>CString     str;     // это данные для примера

Vi2>// если не уверены, что в COleVariant-е строка, то
Vi2>    strdata.ChangeType(VT_BSTR);
Vi2>// если уверены, то ничего этого не надо

Vi2>if( strdata.vt == VT_BSTR )
Vi2>    str = strdata.bstrVal;
Vi2>else
Vi2>    error "не смогли получить строку";
Vi2>


На мой взгляд было бы лучше

USES_CONVERSION;

if( strdata.vt == VT_BSTR )
    str = W2A(strdata.bstrVal);
else
    error "не смогли получить строку";
Re[4]: Как конвертировать из COleVariant в CString...
От: Lesat Россия  
Дата: 18.11.05 00:03
Оценка:
Здравствуйте, Lion, Вы писали:


L>А я делал так:


L>
L>Set.GetFieldValue("...", Value);
L>CString    strValue=Value.pbVal;
L>


L>Все работает.

А если нужно сделать что-то вроде вот этого:

COleVariant val;
CString WordToAdd;
val.bstrVal=WordToAdd;

ошибка — error C2440: 'type cast' : cannot convert from 'CString' to 'BSTR'


val.pbVal тоже не катит...((( и (BSTR)WordToAdd — ((
Re[5]: Как конвертировать из COleVariant в CString...
От: algol Россия about:blank
Дата: 18.11.05 08:55
Оценка:
Здравствуйте, Lesat, Вы писали:

L>А если нужно сделать что-то вроде вот этого:

L>COleVariant val;
L>CString WordToAdd;
L>val.bstrVal=WordToAdd;
L>ошибка — error C2440: 'type cast' : cannot convert from 'CString' to 'BSTR'

Вот так должно работать:
CString WordToAdd;
COleVariant val(WordToAdd);

или
COleVariant val;
val = WordToAdd;
Re[6]: Как конвертировать из COleVariant в CString...
От: Lesat Россия  
Дата: 19.11.05 08:10
Оценка:
Здравствуйте, algol, Вы писали:

A>Вот так должно работать:

A>
A>CString WordToAdd;
A>COleVariant val(WordToAdd);
A>

A>или
A>
A>COleVariant val;
A>val = WordToAdd;
A>

Ага, работает спасибо Только вот проблемка... у меня БД в аксессе... а там добавленное слово отображается в какой-то кривой кодировке(( Можно это как-нить исправить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.