位图文件存入Sql Server 2005的image类型字段 如题,我需要将位图存入image字段里,位图存储路径固定,sql server有没有提供函数或存储过程能直接把位图文件存入image字段里? 如果没有,希望各位能提供给我一段例子,展示怎么在前台把位图文件转化为二进制流,我用的是MFC VS2003环境 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void AdoRst::FileToBinaryField(CString FieldName,CString FileName) { _variant_t vtFld; _variant_t vtIndex; try { if(rs==NULL) return ; if(rs->State!=adStateOpen) return ; CString str = _T(""); vtIndex.SetString(FieldName); CFile myfile; CFileException e; //打开文件 if( !myfile.Open(FileName, CFile::modeRead, &e ) ) { return; } BYTE* pbuf; long len = myfile.GetLength(); pbuf = new BYTE[len]; if(pbuf == NULL) return; //allocate memory error; myfile.ReadHuge(pbuf,len); //read the file into memory BYTE *pBufEx; pBufEx = pbuf; // 构造安全数组并放到一个varint变量中 SAFEARRAY* psa; SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0; rgsabound[0].cElements = len; psa = SafeArrayCreate(VT_UI1, 1, rgsabound); for(long i = 0; i < len; i++) SafeArrayPutElement(psa, &i, pBufEx++); _variant_t varBLOB; varBLOB.vt = VT_ARRAY | VT_UI1; varBLOB.parray = psa; delete []pbuf; myfile.Close(); if(len>0) vtFld = rs->Fields->GetItem(vtIndex)->AppendChunk(varBLOB); } catch(...) { return; } } [在线等]combo box控件关联数据数表中某一字段的值. picture control中获得图片的问题 两个窗口,如何知道哪一个在上,哪一个在下? 一个GDI+图象显示特技问题 关于CListCtrl内存消耗的问题 如何判断一个时间是否在一个时间段内 如何按cancel后退出程序????????please C++初学者问题,最基础的问题。谢谢... 大侠们帮帮忙啊!多功能键盘输入焦点问题 有关数据存盘、读取的问题 基于对话框的MFC如何使用自己引入的光标改变鼠标的样子 位图存入Sql Server 2005的image类型字段
void AdoRst::FileToBinaryField(CString FieldName,CString FileName)
{
_variant_t vtFld;
_variant_t vtIndex;
try
{
if(rs==NULL) return ;
if(rs->State!=adStateOpen) return ;
CString str = _T("");
vtIndex.SetString(FieldName);
CFile myfile;
CFileException e;
//打开文件
if( !myfile.Open(FileName, CFile::modeRead, &e ) )
{
return;
}
BYTE* pbuf;
long len = myfile.GetLength();
pbuf = new BYTE[len];
if(pbuf == NULL)
return; //allocate memory error;
myfile.ReadHuge(pbuf,len); //read the file into memory
BYTE *pBufEx;
pBufEx = pbuf;
// 构造安全数组并放到一个varint变量中
SAFEARRAY* psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = len;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for(long i = 0; i < len; i++)
SafeArrayPutElement(psa, &i, pBufEx++);
_variant_t varBLOB;
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
delete []pbuf;
myfile.Close();
if(len>0)
vtFld = rs->Fields->GetItem(vtIndex)->AppendChunk(varBLOB);
}
catch(...)
{
return;
}
}