Здравствуйте 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]