Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение объектов OLE из БД 
:(
    Опции темы
heilage
Дата 12.7.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 21.4.2007
Где: Новосибирск

Репутация: нет
Всего: нет



Прошу прощения если вопрос тривиален, но с подобной задачей сталкиваюсь впервые и поисковик напару с MSDN не особо помогли...
Задача: Получить объект OLE из БД, саму базу (ms jet 4.0) цепляю через ODBC. Запрос проходит успешно, и даже вроде данные доходят обратно, но...
Код

CDatabase MyDatabase;
MyDatabase.OpenEx(path, CDatabase::noOdbcDialog|CDatabase::openReadOnly); // в path путь к базе
CDBVariant varValue;
CRecordset rs(&MyDatabase);

CString query("SELECT ol.object, co.is_right from tAnswers co, tOle ol where co.answer LIKE ol.idOle and co.id=4"); // тестовый запрос

rs.Open(CRecordset::forwardOnly, query);
if( !rs.IsEOF( ) )
{
    rs.GetFieldValue( (short)0, varValue );
    LPSTORAGE pStorage = NULL;
    LPLOCKBYTES pLockBytes = NULL;

    if (FAILED(CreateILockBytesOnHGlobal(varValue.m_pbinary->m_hData, FALSE, &pLockBytes)))
        {
        AfxMessageBox("Unable to retrieve LockBytes");
        return;
        } /* тут все хорошо.*/

    HRESULT hr = StgOpenStorageOnILockBytes(pLockBytes, NULL,  
            STGM_DIRECT | STGM_READ | STGM_SHARE_EXCLUSIVE  , NULL, 
            0, &pStorage);

    if (FAILED(hr)) /* а вот тут валимся с ошибкой 0x80030050 - File already exists */
        {
            AfxMessageBox("Failure opening storage");
            pLockBytes->Release();
            continue;
        }
}

То бишь переданный байтовый массив не указывает на полезные данные =\ Не пойму куда копать - может это быть дефект файла БД, или я где-то прокосил с флагами, а то и вообще не так данные получаю.. Впрочем сам файл БД (формата access95, как я понимаю - т.е. довольно древнего) успешно открывается в ms access.. 

Благодарен заранее за любую помощь, особенно за актуальные ссылки.

Это сообщение отредактировал(а) heilage - 12.7.2007, 17:18
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.