图片如何保存到数据库中sqlserver(ado来实现)

zjg751206 2001-12-31 10:51:45
怎么写vc代码??
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2002-01-28
  • 打赏
  • 举报
回复
ADO的stream
zjg751206 2002-01-26
  • 打赏
  • 举报
回复
好阿!!!我来迟到拉
fft123 2001-12-31
  • 打赏
  • 举报
回复
http://www.vckbase.com/vckbase/vckbase10/vc/nonctrls/database_07/1007003.htm
fengfeng1_1 2001-12-31
  • 打赏
  • 举报
回复
这个例子示范了如何在AccessDB中存储画笔图象。给你个参考吧!
在代码里,已经建立了一个CDaoRecordset派生类,用于处理和读取二进制数据。当建立记录集时,
ClassWizard绑定一个CLongBinary给OLE对象字段。CLongBinary管理起来很困难,
因此,在该记录集只是接受二进制数据,我给该字段绑定了一个CByteArray变量。

例如:

::DoFieldExchange(CDaoFieldExchange* pFX)

DFX_LongBinary(pFX, _T("[Images]"), m_Images);
变成:

DFX_Binary(pFX, _T("[Images]"), m_Images);

在CDAORecordSet中,将公共成员"CLongBinary m_Images" 变成"CByteArray m_Images" 。该函数的代码是:

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;
}
my_555 2001-12-31
  • 打赏
  • 举报
回复
关注

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧