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

IErrorInfo* ef = 0; GetErrorInfo(0,&ef); \

_com_raise_error(_hr,ef);}}while(false)

void UploadPicture2DB(PCWSTR szPath)

{

try{

CComVariant vtMissing(DISP_E_PARAMNOTFOUND,VT_ERROR);

//Загружаем картинку из файла

TESTHR(OleLoadPicturePath(szPath,NULL,NULL,0,IID_IPicture,(void**)&pic));

CComPtr<ADOStream> stream;

TESTHR(stream.CoCreateInstance(L"ADODB.Stream"));

TESTHR(stream->put_Type(adTypeBinary));

TESTHR(stream->Open(vtMissing));

CComQIPtr<IStream> strm(stream);

CComQIPtr<IPersistStream> ps(pic);

//Сохраняем картинку в объект ADODB.Stream

TESTHR(ps->Save(strm,TRUE));

CComPtr<ADORecordset> rs;

TESTHR(rs.CoCreateInstance(L"ADODB.Recordset"));

TESTHR(rs->Open(CComVariant(L"blob_test"),CComVariant(conn),adOpenStatic,

adLockOptimistic,adCmdTable));

//Добавляем новую пустую запись

TESTHR(rs->AddNew(vtMissing,vtMissing));

CComPtr<ADOFields> flds;

TESTHR(rs->get_Fields(&flds));

CComPtr<ADOField> fld;

TESTHR(flds->get_Item(CComVariant(L"img"),&fld));

TESTHR(stream->put_Position(0));

//Заливаем содержимое Stream-а в поле img

CComVariant v;

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