如何判断如下的sql语句是否被正确执行了

时间:2021-06-10 01:01:31
strsql.Format(_T("update student set student_name='3338899' where student_id=%s"),  m_strValue);

       m_pRecordset->Open(_bstr_t(strsql), (IDispatch*)m_pConnection,\
adOpenDynamic,adLockOptimistic,adCmdText);

如果上边的语句被正确执行了 就弹出AfxMessageBox(_T("此书存在!"), MB_OK|MB_ICONSTOP);
如果上边的语句没有被执行 则弹出AfxMessageBox(_T("此书不存在存在!"), MB_OK|MB_ICONSTOP);

请问各位高手 如何 实现?

7 个解决方案

#1


结合Open的返回值和m_pRecordset->adoEOF判断即可.

#2


能否 具体些  我是新手

#3


复杂点,弄个存储过程(先判断是否存在该ID,没有返回0,有则进行修改)执行,得到返回值

#4


有几个问题:
1、那个sql语句:“strsql.Format(_T("update student set student_name='3338899' where student_id=%s"), m_strValue);”

    student_id字段确认是字符型的?如果是要这样使用:student_id='%s'

  
2、对应更新语句,其实没必要用记录集RecordSet对象:

  adoConn->Execute((LPCTSTR)sql, NULL, -1);
  

#5


执行成功返回受影响行数,根据这个判断

#6


//m_pConnection事先已连接数据库,事先已调用m_pConnection的Open方法

//然后使用m_pConnection的Execute方法

_variant_t vRows;
_bstr_t bSql;
CString strSql;

//构造SQL语句
strSql.Format(_T("update student set student_name='3338899' where student_id=%s"), m_strValue);


bSql = strSql.AllocSysString();

try
{
m_pConnection->Execute(bSql,&vRows,adCmdText);
//这里的vRows就是执行SQL语句所影响的行数
      .............
}
catch(_com_error *e)
{
...................
}

m_pConnection->Close();

#7


只要执行通过了,就成功了。
直接
try
   执行sql
   成功
except
   失败
end

#1


结合Open的返回值和m_pRecordset->adoEOF判断即可.

#2


能否 具体些  我是新手

#3


复杂点,弄个存储过程(先判断是否存在该ID,没有返回0,有则进行修改)执行,得到返回值

#4


有几个问题:
1、那个sql语句:“strsql.Format(_T("update student set student_name='3338899' where student_id=%s"), m_strValue);”

    student_id字段确认是字符型的?如果是要这样使用:student_id='%s'

  
2、对应更新语句,其实没必要用记录集RecordSet对象:

  adoConn->Execute((LPCTSTR)sql, NULL, -1);
  

#5


执行成功返回受影响行数,根据这个判断

#6


//m_pConnection事先已连接数据库,事先已调用m_pConnection的Open方法

//然后使用m_pConnection的Execute方法

_variant_t vRows;
_bstr_t bSql;
CString strSql;

//构造SQL语句
strSql.Format(_T("update student set student_name='3338899' where student_id=%s"), m_strValue);


bSql = strSql.AllocSysString();

try
{
m_pConnection->Execute(bSql,&vRows,adCmdText);
//这里的vRows就是执行SQL语句所影响的行数
      .............
}
catch(_com_error *e)
{
...................
}

m_pConnection->Close();

#7


只要执行通过了,就成功了。
直接
try
   执行sql
   成功
except
   失败
end