像数据库中添加图片功能,执行后显示无效指针

有情有义阿德利 2020-03-23 06:34:10
CFile file;//定义一个文件变量
if (!file.Open(m_strFilePath, CFile::modeRead))//以制度的方式打开文件
return;
m_nFileLen = file.GetLength();//获取文件的长度
m_pBMPBuffer = new char[m_nFileLen + 1];//开辟符数组
if (!m_pBMPBuffer)//如果控件不够大
return;
if (file.Read(m_pBMPBuffer, m_nFileLen) != m_nFileLen)//读取文件保存在字符数组中
return;
char* pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY* psa;
SAFEARRAYBOUND rgsabound[1];
if (pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement(psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;

}
try
{
m_pRecordset->AddNew();
m_pRecordset->PutCollect("身份证号", "1001");
m_pRecordset->PutCollect("姓名", "张三");
m_pRecordset->GetFields()->GetItem("指纹信息")->AppendChunk(varBLOB);
m_pRecordset->Update();
}
catch (_com_error e)
{
CString str;
str.Format(_T("错误信息:%s"), e.ErrorMessage());
MessageBox(_T("Add picture to database is failed!,reason:") + str);
return;
}


MessageBox(_T("保存成功!"));
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2020-03-23
  • 打赏
  • 举报
回复
奔溃? 设置断点 单步运行看是那一步出错


Eleven 2020-03-23
  • 打赏
  • 举报
回复
你Debug一下,哪里调用失败?

4,011

社区成员

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

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