MFC SQL Update问题

yangkunhenry 2019-09-05 02:06:31
	if(dlg->m_Config.m_bServer)
{
//nasri_trip_id
_variant_t var;
CString sql;
if(dlg->m_Config.m_iCheckStation == 4)
{
sql.Format("UPDATE %s_%s_PCBA SET WIFIMAC='%s' WHERE DEVICEID='%s' AND ENABLE = 1",dlg->m_StrProduct,dlg->m_StrOrder,dlg->m_trip_id,dlg->m_StrID);
}

if(dlg->m_pRst->State)
dlg->m_pRst->Close();

try
{
dlg->m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
}
catch(_com_error e)
{
CString errmesage = _T("");
char * buf = _com_util::ConvertBSTRToString(e.Description());
errmesage.Format(_T("Warning: exception desception:%s \r\n errmessage: %s"),buf,e.ErrorMessage());
dlg->Display(errmesage.GetBuffer(0),0);
//AfxMessageBox(errmesage);
return 0;
}
}


想问下
dlg->m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
如果Update执行不成功,比如表根本就不存在,列不存在这样的情况
怎么去做判断?
谢谢
...全文
335 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangkunhenry 2019-09-16
  • 打赏
  • 举报
回复
引用 4 楼 hhhh63 的回复:
MFC catch (CDBException* pe)
二楼正确哦,谢谢回复哈,这里Update 如果DeviceID找不到,我也以为会抛出exception,但是并没有。 用第二个参数做了判断就好了
yangkunhenry 2019-09-16
  • 打赏
  • 举报
回复
引用 3 楼 hhhh63 的回复:
表不存在、字段不存在或语法错误会抛出异常。
二楼正确哦,谢谢回复哈,这里Update 如果DeviceID找不到,我也以为会抛出exception,但是并没有。 用第二个参数做了判断就好了
yangkunhenry 2019-09-16
  • 打赏
  • 举报
回复
引用 2 楼 zwfgdlc 的回复:
Execute((_bstr_t)sql,NULL,adCmdText); 这二个参数返回影响的行数,如果是0表示,UPDATE没有更改数据
谢谢!!!!
hhhh63 2019-09-06
  • 打赏
  • 举报
回复
MFC catch (CDBException* pe)
hhhh63 2019-09-06
  • 打赏
  • 举报
回复
表不存在、字段不存在或语法错误会抛出异常。
zwfgdlc 2019-09-06
  • 打赏
  • 举报
回复
Execute((_bstr_t)sql,NULL,adCmdText); 这二个参数返回影响的行数,如果是0表示,UPDATE没有更改数据
yangkunhenry 2019-09-06
  • 打赏
  • 举报
回复
各位大神有遇到过类似的疑问吗

4,018

社区成员

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

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