请教用ado执行insert、update等操作,如何知道是否成功
请问用ado执行insert、update等操作,怎么知道是否成功?
比如:UPDATE wii_users SET pwd= '123456 ' WHERE wii_id=1000
如果wii_id=1000并不存在,则并没有异常抛出,而我又不想预先select一下看是否存在
这时候能否知道是否update了一条记录?
我用的_ConnectionPtr的Execute方法,它会返回一个_RecordsetPtr,不知道能不能通过它来判断?
------解决方案--------------------
bool DbTheadCmd(_ConnectionPtr m_MyConnection,CString sql)
{
_variant_t RecordsAffected;
try
{
m_MyConnection-> Execute((_bstr_t)sql,&RecordsAffected,adCmdUnknown);
}
catch(_com_error e)///捕捉异常
{
return false;
}
RecordsAffected.Clear();
return true;
}
------解决方案--------------------
补充楼上,对于insert ,update, delete
variant_t RecordsAffected;
m_MyConnection-> Execute((_bstr_t)sql,&RecordsAffected,adCmdUnknown);
if ((long)RecordsAffected==0)
{
//没有记录被此次查询影响
}
比如:UPDATE wii_users SET pwd= '123456 ' WHERE wii_id=1000
如果wii_id=1000并不存在,则并没有异常抛出,而我又不想预先select一下看是否存在
这时候能否知道是否update了一条记录?
我用的_ConnectionPtr的Execute方法,它会返回一个_RecordsetPtr,不知道能不能通过它来判断?
------解决方案--------------------
bool DbTheadCmd(_ConnectionPtr m_MyConnection,CString sql)
{
_variant_t RecordsAffected;
try
{
m_MyConnection-> Execute((_bstr_t)sql,&RecordsAffected,adCmdUnknown);
}
catch(_com_error e)///捕捉异常
{
return false;
}
RecordsAffected.Clear();
return true;
}
------解决方案--------------------
补充楼上,对于insert ,update, delete
variant_t RecordsAffected;
m_MyConnection-> Execute((_bstr_t)sql,&RecordsAffected,adCmdUnknown);
if ((long)RecordsAffected==0)
{
//没有记录被此次查询影响
}