哪位高手帮小弟我看下这段代码为什么出现内存有关问题.多谢了

谁帮我看下这段代码为什么出现内存问题....谢谢了
//目的是修改选中项
//更新数据库
//0x753dd36f 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x002becac 处的 _com_error。
void CAdoDlg::OnBnClickedModify()
 {
  UpdateData(TRUE);
  int pos=m_list.GetSelectionMark();//获取当前选中的项目
 
  CString sql;
  //设置SQL语句
  sql.Format("update ShellInfo set Sum=%d where Merchandise=%s",m_Num,m_Name);
  m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);//执行sql语句
  CString str;
  str.Format("%d",m_Num);
  m_list.SetItemText(pos,1,str);
 }
------解决方案--------------------
1.m_pConnection是否有效,如果无效,是否在程序初始化函数里执行了AfxInitOle()函数
2.sql.Format("update ShellInfo set Sum=%d where Merchandise=%s",m_Num,m_Name);
这句不对,这么改:
sql.Format("update ShellInfo set Sum=%d where Merchandise='%s'",m_Num,m_Name);
字符型要加单引号