Re: BLOB-поля
От: Ростислав Глухов Россия http://www.geocities.com/rg2204/
Дата: 01.12.01 09:47
Оценка: 4 (1)
Здравствуйте KAY, Вы писали:

KAY>Народ! Подскажите, плиз, как мне добавить файл (например,

KAY>документ Word) в BLOB-поле (желательно с примером кода).
KAY>Заранее благодарен!!!

Добавляется/читается с использованием функций ADO Field:
GetChunk()/AppenfChunk()

например (очень грязно)
[vc]
bool CImUtil::ImFieldFromFile(FieldPtr &fld, _bstr_t ifile)
{
VARIANT varArray;
long lDataLength=0;
char *pBuf = NULL;
int nDataLenRetrieved = 0;

try
{
ifstream fi(ifile, ios::in | ios::binary);
lDataLength = filelength(fi.fd());
if(lDataLength > 0)
{

SAFEARRAY FAR* psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = lDataLength;

psa = SafeArrayCreate(VT_I1, 1, rgsabound);

if(SafeArrayAccessData(psa,(void **)&pBuf) == NOERROR)
fi.read(pBuf,lDataLength);
SafeArrayUnaccessData(psa);
varArray.vt = VT_ARRAY | VT_UI1;
varArray.parray = psa;

fld->AppendChunk(varArray); /// !!!!!!

VariantClear(&varArray);

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