Преобразование _variant_t к char и int
От: unfer  
Дата: 09.10.08 04:38
Оценка:
Здравствуйте все!
Извиняюсь за, возможно, слишком ламерский вопрос.
Итак, есть у меня RecordSet с данными, теперь мне надо эти данные поместить в массив структур, причем количество структур в массиве, как вы понимаете, заранее неизвестно, т.е. как бы динамический массив.
Насколько я понимаю, данные в RecordSet'е хранятся в типе _variant_t, т.е. результатом строчки
RecPtr->GetFields()->GetItem(L"field_name")->Value

будет тип _variant_t.
Далее, есть у меня структура вида
struct RecStr
{
    char np_timep;
    unsigned int id;
    char prod_abbr2;
    char num_otgr;
    short int num_sec;
    unsigned short int vzl_sert;
    unsigned int card_id;
    unsigned short int card_num;
    unsigned short int status;
    char np_data_o;
    char fio_driver;
};

, а также массив таких структур
RecStr **MasRec = new RecStr*[RecNum];     //
    for (int i = 0; i < RecNum; i ++)  //
    {                               //Кстати, правильно ли я делаю?
        MasRec[i] = new RecStr;    //
    }                                  //

Необходимо данные из RecordSet'a записать в этот массив, но пока не получается.
Делаю так
(TCHAR*)(_bstr_t)RecPtr->GetFields()->GetItem(L"id")->Value;

— компилятор ругается, вот так
*(TCHAR*)(_bstr_t)RecPtr->GetFields()->GetItem(L"id")->Value;

— выводит непонятные значения.

Может кто-нибудь в курсе, как нужно делать правильно? Направьте новичка на путь истинный =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.