Re[6]: BLOB-поля
От: Ростислав Глухов Россия http://www.geocities.com/rg2204/
Дата: 07.12.01 12:28
Оценка:
Здравствуйте KAY, Вы писали:


KAY>не могли ли бы вы прислать кусок кода, который читает из БД

KAY>данные (GetChunk) и сохраняет их в файле ??? Очень нужно и
KAY>очень срочно !

Пожалуйста, только пересмотрите код, м.б. потребуется вызывать GetChunk() в цикле, если БЛОБ большой...
[vc]
bool CImUtil::ImField2File(FieldPtr &fld, _bstr_t ofile)
{
_variant_t varBLOB;
long lDataLength = 0;
char *pBuf = NULL;
int nDataLenRetrieved = 0;

try
{
// get the actual length of the data
lDataLength = fld->ActualSize;
if(lDataLength > 0)
{
VariantInit(&varBLOB);
// get the chunk of data
varBLOB = fld->GetChunk(lDataLength);

// If the data retrieved is array of bytes then get data from the array and set the
// data value variable of the edit box
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
ofstream fo(ofile, ios::out | ios::binary);
fo.write(pBuf,lDataLength);
fo.close();
SafeArrayUnaccessData(varBLOB.parray);
}

}
}
catch(_com_error &e)
{
MessageBox(HWND_DESKTOP,e.ErrorMessage(),"ERROR",MB_OK);
return false;
}
return true;
}
[/vc]
- А Вы что курите?
— Минздрав предупреждает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.