vc连接SQL SERVER数据库

kaikai0631 2006-05-27 11:25:26
我在用ado方式连数据库中,想把一个bmp图片插入到SQL SERVER数据库中,然后将其读出来。好象已经把图片插进去了,可是读出来的时候却发现图片的大小为零,但我在插入后调试发现它的大小正确。不知是什么原因?
void CHujiEditDlg::insertphoto(CString strname)
{
ADOConn m_AdoConn;
CString strSQL;
_RecordsetPtr m_prs;
_variant_t vFieldValue;
_variant_t vexamNull;
vexamNull.ChangeType(VT_NULL);
//数据库连接,OnInitADOConn的第一参数设置成服务器ip,第2参数设置成数据库名字
if(!m_AdoConn.OnInitADOConn())
{
AfxMessageBox("数据库链接失败!",MB_OK);
}
strSQL.Format("select * from chjxx where xm='%s'",strname);
m_prs = m_AdoConn.GetRecordSet(strSQL);//找到插入的那个记录
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound=0;

rgsabound[0].cElements=m_filelen;
psa=SafeArrayCreate(VT_UI1,1,rgsabound);
for(long i=0;i<(long)m_filelen;i++)
SafeArrayPutElement(psa,&i,m_pBuffer++);
varBLOB.vt=VT_ARRAY|VT_UI1;
varBLOB.parray=psa;
m_prs->GetFields()->GetItem("photo")->AppendChunk(varBLOB);
long size=m_prs->GetFields()->GetItem("photo")->ActualSize;//在这里图片大小正确
}
//将图片将数据库中读出来
//数据库连接,OnInitADOConn的第一参数设置成服务器ip,第2参数设置成数据库名字
if(!m_AdoConn.OnInitADOConn("JF46","xc","",""))
{
AfxMessageBox("数据库链接失败!",MB_OK);
}
strSQL.Format("select * from chjxx where xm='%s'","eee");
m_prs = m_AdoConn.GetRecordSet(strSQL);//找到此记录

long IDataSize=m_prs->GetFields()->GetItem("photo")->ActualSize;//在这里图片大小为0;

希望大家能帮我解决这个问题?若有不明白的地方,请发email到kaikai0635
...全文
102 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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