MFC获取数据库中的图片 MFC图片二进制数据库对话框 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现读取,在显示。。按照Bmp格式来做 从数据库取出图片的BLOB数据的目的之一是要保存为文件形式,可以继续利用Stream对象来实现,这是一个非常好的方法,只要两条简单的语句就可以实现。它是将图片文件存入数据库的逆过程。pStm2>Write ( _ variant_ t (MyCnt2> GetFields ( ) 2> GetItem ( " Pic2ture" ) 2>Value) ) ; / /把Picture字段的内容写入pStmpStm2> SaveToFile ( " c: \ \publogo. jpg" , adSaveCreateOverWrite) ;/ /保存为文件pStm2>Close ( ) ; / /关闭流 数据库中图片保存为变量从BLOB字段中取出图片的另外一个目的,即主要目的,就是把图片显示出来。根据前面显示程序的要求,这时只需要把BLOB字段中的图片内容取出,保存在一个_variant_ t变量中,然后就可以调用ShowPic函数进行显示了。因此这时利用Stream对象就不如使用Fields对象的Getchunk方法方便,因为Getchunk方法可以不用任何转换,直接从BLOB字段中获得有关数据,并保存在_variant_t变量varBLOB。参考代码如下:_variant_t varBLOB;long nsize = MyCnt2> GetFields( ) 2> GetItem ( " Picture" ) 2>Actual2Size;if ( nsize > 0){ varBLOB = MyCnt2> GetFields ( ) 2> GetItem ( " Picture " ) 2>GetChunk ( nsize) ; … / /开始显示}开始显示就用StretchDIBits函数往你显示的DC上画吧 可以用CBitmap的SetBitmapBits来复原数据 全二进制用CFile读出来然后保存带bmp后缀文件即可 这个函数怎么用。另外怎么提取数据库中的二进制数据,我用GetFieldValue提取并赋值到编辑框时,可以运行,但编辑框什么东西都没显示。这是怎么回事? 我也是弄这个弄了好久了,我的是将图片以二进制存到了SQL SERVER 2012中,现在我想用MFC中的Picture Control显示出来,弄了好久都没成TAT 系统精确计时的误差在 50ms? opengl中3D图形的选择、拾取、拖动、旋转、缩放 如何改变DialogBar的初始停靠位置 一个关于声音文件的问题。。。请大家指教 串口通信和网络通信在一起的时候收不到消息? 菜鸟问题 数组指针所指向的数组如何重新赋值? 对话框不能正常关闭的问题! 2011年大连IT俱乐部系列活动——中国物联网暨嵌入式现状及发展趋势开放论坛 c#和java到底有什么区别? RegisterHotKey竟然注册了两个一样ID的热键 高手帮忙啊! 我要疯了,怎么获取CRicheditCtr中OLE控件的矩形大小呢?
文件形式,可以继续利用Stream对象来实现,这是一个非常好
的方法,只要两条简单的语句就可以实现。它是将图片文件存
入数据库的逆过程。
pStm2>Write ( _ variant_ t (MyCnt2> GetFields ( ) 2> GetItem ( " Pic2ture" ) 2>Value) ) ; / /把Picture字段的内容写入pStm
pStm2> SaveToFile ( " c: \ \publogo. jpg" , adSaveCreateOverWrite) ;/ /保存为文件
pStm2>Close ( ) ; / /关闭流
数据库中图片保存为变量
从BLOB字段中取出图片的另外一个目的,即主要目的,
就是把图片显示出来。根据前面显示程序的要求,这时只需要
把BLOB字段中的图片内容取出,保存在一个_variant_ t变量
中,然后就可以调用ShowPic函数进行显示了。因此这时利用
Stream对象就不如使用Fields对象的Getchunk方法方便,因为
Getchunk方法可以不用任何转换,直接从BLOB字段中获得有
关数据,并保存在_variant_t变量varBLOB。参考代码如下:
_variant_t varBLOB;
long nsize = MyCnt2> GetFields( ) 2> GetItem ( " Picture" ) 2>Actual2
Size;
if ( nsize > 0)
{
varBLOB = MyCnt2> GetFields ( ) 2> GetItem ( " Picture " ) 2>
GetChunk ( nsize) ;
… / /开始显示
}
开始显示就用StretchDIBits函数往你显示的DC上画吧
另外怎么提取数据库中的二进制数据,我用GetFieldValue提取并赋值到编辑框时,可以运行,但编辑框什么东西都没显示。这是怎么回事?