Реферат: Работа с объектами большого объема в MS SQL и ADO

}

//Загружаем картинку из Stream-а

CComQIPtr<IStream> strm(stream);

if (strm){

hr = OleLoadPicture(strm,0,TRUE,IID_IPicture,(void**)pic);

if (FAILED(hr)){

ShowError();

return;

}

}

}

Для того чтобы подобный код работал, необходимо подключить заголовочный файл adoint.h. Можно было воспользоваться директивой import для генерирования удобных оберток над соответствующими объектами и методами ADO. Пример получился бы проще, но тогда вы могли упустить кое-какие детали.

В примере производится загрузка изображения из базы данных в объект, поддерживающий интерфейс IPicture. Этот интерфейс позволит вам в дальнейшем выводит (рендерить) изображение или сохранять его на диск в различных форматах. Вывод изображения на экран делается примерно так (обработчик WM_PAINT):

LRESULT CMainDlg::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)

{

CPaintDC dc(m_hWnd);

if (pic){

OLE_XSIZE_HIMETRIC SizeX;

OLE_YSIZE_HIMETRIC SizeY;

pic->get_Height(&SizeY);

pic->get_Width(&SizeX);

RECT rc;

GetClientRect(&rc);

//Собственно вывод

pic->Render(dc,0,0,rc.right,rc.bottom,0,SizeY,SizeX,-SizeY,NULL);

}

return 0;

}

Загружать файл в базу на С++ примерно так же просто, как и получать:

К-во Просмотров: 668
Бесплатно скачать Реферат: Работа с объектами большого объема в MS SQL и ADO