Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
black_igor
Сообщений: n/a
#1

CrystalDataObject - C++

22.09.2008, 00:28. Просмотров 463. Ответов 0
Метки нет (Все метки)

Подскажите пожалуйста, как правильно сформировать и инициализирвать объект CrystalDataObject, т.е. добавление полей (AddField), добавление данных (AddRows) (желательно с примерами кода).
Особенно непонятно использовние функции AddRows. Судя по всему в качестве аргумента должен выступать массив типа SAFAARRAY, но как его правильно создать и передать - непонятно.

Пробовал писать такой код, но вылетает: RunTime Error

ICrystalDataObjectPtr m_Cdo;

hr = CoCreateInstance(CLSID_CrystalDataObject, NULL, CLSCTX_INPROC_SERVER , IID_ICrystalDataObject, (void **) &m_Cdo);
_variant_t vtType((short)8, VT_I2);
_bstr_t strName('id');
m_Cdo->AddField (strName, vtType);

strName=_bstr_t('age');
vtType=_variant_t((short)8, VT_I2);
m_Cdo->AddField (strName, vtType);
SAFEARRAY *pSa;
pSa=SafeArrayCreateVector(VT_I2 , 0, 2);
short* pvData;
SafeArrayAccessData(pSa, (void**)&pvData);
pvData[0]=100;
pvData[1]=200;
SafeArrayUnaccessData(pSa);
VARIANT vt;
VariantInit(&vt);
vt.vt =VT_ARRAY | VT_I2 ;
vt.parray = pSa;
vt.pparray = &pSa;
hr= m_Cdo->AddRows (vt); //получаем RunTime Error
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru