Storing "Paint Brush" images in a Access DB
Posted
by Luigi Ottoboni
on March 1st, 1999
Example :
::DoFieldExchange(CDaoFieldExchange* pFX)
DFX_LongBinary(pFX, _T("[Images]"), m_Images);
become
DFX_Binary(pFX, _T("[Images]"), m_Images);
In CDAORecordSet the public member "CLongBinary m_Images" become "CByteArray m_Images"
The function code is :
BOOL CBLOBSDlg::ReadFromBLOB(CByteArray & DBArray)
{
CByteArray Array;
Array.Copy( DBArray);
// the header of BLOB is OLE stuff like "Paint Brush Application" .... ecc..
// the len is 78 byte ( I do not know for other headers )
int HeaderLen = 78 + sizeof(BITMAPFILEHEADER);
Array.RemoveAt( 0, HeaderLen ); // I cut all Headers
// some BMP information
BITMAPINFOHEADER &bmiHeader = *(LPBITMAPINFOHEADER)Array.GetData() ;
BITMAPINFO &bmInfo = *(LPBITMAPINFO)Array.GetData() ;
// If bmiHeader.biClrUsed is zero we have to infer the number
// of colors from the number of bits used to specify it.
int nColors = bmiHeader.biClrUsed ? bmiHeader.biClrUsed : 1 << bmiHeader.biBitCount;
LPVOID lpDIBBits;
if( bmInfo.bmiHeader.biBitCount > 8 )
lpDIBBits = (LPVOID)((LPDWORD)(bmInfo.bmiColors + bmInfo.bmiHeader.biClrUsed) +
((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
else
lpDIBBits = (LPVOID)(bmInfo.bmiColors + nColors);
CClientDC dc(NULL);
HBITMAP hBmp = CreateDIBitmap( dc.m_hDC, // handle to device context
&bmiHeader, // pointer to bitmap size and format data
CBM_INIT, // initialization flag
lpDIBBits, // pointer to initialization data
&bmInfo, // pointer to bitmap color-format data
DIB_RGB_COLORS); // color-data usage
OleBmp.Attach( hBmp );
Array.RemoveAll(); //Relese Memory
return TRUE;
}
Note:
1: In the example the DB path in "CString CDaoRecorset::GetDefaultDBName()" must be changed!!
2: This code is for VC++ 5
Update regarding storing a BLOB in an Access DB:
Download Project including saving BLOB - 60 KB
Date updated : 12 Feb. 1999

Comments
tee shirt diesel homme tee shirt perso
Posted by efmzboyt on 03/19/2013 08:10amÿþ
Replytee shirt handball tee shirt dinosaure
Posted by nnzzqzzl on 03/18/2013 05:56amÿþ
Replyimpression de tee shirt pas cher tee shirt creation
Posted by miqjijyz on 03/17/2013 10:39pmÿþ
Reply