如何在vc里用ado存储图片 请问各位,我在sql里建了一张表,并且有个字段为image,请问怎么在vc里用ado进行图片的存取;另我在网上看到不少人说只需要在数据库中存放图片的文件名,不存放物理路径,用的时候再去找相对路径,请问各位这两种方式怎么实现呀?小弟在线的等~! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 _ StreamPtr pStm; pStm.CreateInstance("ADODB.Stream"); variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR); pStm->PutType(adTypeBinary);//类型为二进制 //得到字段内容的大小 // long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize; //m_pRecordset为一个打开的纪录集对象,含有photo这个blob字段 pStm->Open( varOptional, adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t()); //打开pStm pStm->Write(_variant_t(m_pRecordset->GetFields()->GetItem("photo")->Value)); //把photo字段的内容写入pStm pStm->SaveToFile("c:\\publogo.jpg", adSaveCreateOverWrite); pStm->Close();这是读取图片。 _StreamPtr pStm; pStm.CreateInstance("ADODB.Stream"); variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR); // long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize; pStm->PutType(adTypeBinary; pStm->Open( varOptional, adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t()); pStm->LoadFromFile("c:\\book.gif");//读入文件 variant_t varBLOB=pStm->Read(adReadAll); m_pRecordset->GetFields()->GetItem("photo")->Value= varBLOB;这是写入图片。 在数据库中存放图片的文件名,不存放物理路径,用的时候再去找相对路径,这有什么不好办的?比如你在字段中放入“../1.bmp”,在vc中使用的时候,只要LoadBitmap这个路径就能显示了。路径字段作为字符串类型就可以了 想写一个魔方程序,用什么样的数据结构描述比较好呢? VC++6和VC++ 2005 Express Edition和VS2005是什么关系? 如何获取当前系统麦克风是否打开? 问一个单文本的问题 有关ShellExecute和CreateProcess的问题 VC中查询数据库时出错如何异常处理?(新手问题) 如何语法敏感?五十分感谢 如何选书籍 菜鸟想知道在程序中怎样得知Check box被选中,有什么函数? 请问如何在<param name="" value="">中指定的属性值,在控件中如何得到? 新手!如何新建一个GUI的MFC? 屏蔽消息的问题
pStm.CreateInstance("ADODB.Stream");
variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
pStm->PutType(adTypeBinary);//类型为二进制
//得到字段内容的大小
// long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
//m_pRecordset为一个打开的纪录集对象,含有photo这个blob字段
pStm->Open( varOptional,
adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t());
//打开pStm
pStm->Write(_variant_t(m_pRecordset->GetFields()->GetItem("photo")->Value));
//把photo字段的内容写入pStm
pStm->SaveToFile("c:\\publogo.jpg", adSaveCreateOverWrite);
pStm->Close();
这是读取图片。
_StreamPtr pStm;
pStm.CreateInstance("ADODB.Stream");
variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
// long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
pStm->PutType(adTypeBinary; pStm->Open( varOptional,
adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t());
pStm->LoadFromFile("c:\\book.gif");//读入文件
variant_t varBLOB=pStm->Read(adReadAll);
m_pRecordset->GetFields()->GetItem("photo")->Value= varBLOB;
这是写入图片。