На машине локально установлен oracle сервер 9.2.0.1.0. Система Windows XP. В студии 2005 на с++ пишу проект для работы с oracle через OLE DB. Все работает, КРОМЕ: не могу прочитать блоб.
Код стандартный:
hr = m_pICommandText->SetCommandText(DBGUID_DEFAULT, "SELECT bfield FROM tbl WHERE rowid=0");
hr = m_pICommandText->Execute(NULL, IID_IRowset, NULL, NULL, (IUnknown**)&m_pQrIRowset);
hr = m_pQrIRowset->QueryInterface(IID_IAccessor, (void**)&m_pQrIAccessor);
Проблема в том, что m_BlobReadStatus всегда возвращается DBSTATUS_S_ISNULL и соответственно m_pBlobISequentialStream — некорректный указатель.
Хотя поле не NULL и содержит правильные данные.
SOS!!!
Re: Можно ли прочитать BLOB из oracle через OLE DB?
Здравствуйте, andrei_akm, Вы писали:
_>Проблема в том, что m_BlobReadStatus всегда возвращается DBSTATUS_S_ISNULL и соответственно m_pBlobISequentialStream — некорректный указатель. _>Хотя поле не NULL и содержит правильные данные.
Провайдер от Microsoft? Смени на Oracle и проверь... Должно работать нормально.
Re[2]: Можно ли прочитать BLOB из oracle через OLE DB?
Здравствуйте, LuciferArh, Вы писали:
LA>Здравствуйте, andrei_akm, Вы писали:
_>>Проблема в том, что m_BlobReadStatus всегда возвращается DBSTATUS_S_ISNULL и соответственно m_pBlobISequentialStream — некорректный указатель. _>>Хотя поле не NULL и содержит правильные данные.
LA>Провайдер от Microsoft? Смени на Oracle и проверь... Должно работать нормально.
Здравствуйте, andrei_akm, Вы писали:
_>Но я ведь установил на машину Oracle сервер (следовательно, и клиент), значит, и оракловый OLE DB. Я по аутпуту смотрел, грузятся оракловые dllи : D:\oracle\ora92\bin\OraOLEDB.dll и т.п.
Это ни о чем не говорит. Строку подключения — в студию. Оракловые DLL будут грузиться в любом случае. Весь фокус в том, как их провайдер обработает.
Re[4]: Можно ли прочитать BLOB из oracle через OLE DB?
Здравствуйте, LuciferArh, Вы писали:
LA>Здравствуйте, andrei_akm, Вы писали:
_>>Но я ведь установил на машину Oracle сервер (следовательно, и клиент), значит, и оракловый OLE DB. Я по аутпуту смотрел, грузятся оракловые dllи : D:\oracle\ora92\bin\OraOLEDB.dll и т.п.
LA>Это ни о чем не говорит. Строку подключения — в студию. Оракловые DLL будут грузиться в любом случае. Весь фокус в том, как их провайдер обработает.
Здравствуйте, andrei_akm, Вы писали:
_>На машине локально установлен oracle сервер 9.2.0.1.0. Система Windows XP. В студии 2005 на с++ пишу проект для работы с oracle через OLE DB. Все работает, КРОМЕ: не могу прочитать блоб.
Нужно использовать провайлер от Oracle 11g, желательно последней версии.
Остальные работу с блобами не поддерживают! Это точно, сам мозг сушил долго с этим вопросом.