插入数据时候弹出上面 图片显示的错误,但是在表中却又实际上已经插入成功?
不知道这是怎么回事?这错误提示是什么原因造成的?谢谢 这是插入时候代码CString str = "insert into test0806 values('10','150','2000-8-18')";
_bstr_t bstrsql = (_bstr_t)str;
m_rs = m_encaAdo.ExecuteSQL(bstrsql);
其中m_rs的类型为 _RecordsetPtr 

解决方案 »

  1.   

    其中ExecuteSQL函数代码为:
    BOOL EncaADO::ExecuteSQL(_bstr_t bstrSQL)
    {
    try
    {
    if(m_pConnection==NULL
    ¦ ¦ m_pConnection->State == adStateClosed)
    {
    InitADOConn();
    }m_pConnection->Execute(bstrSQL,NULL,adCmdText);
    return true;
    }
    catch(_com_error e)
    {
    AfxMessageBox(e.Description());
    return false;
    }
    }
      

  2.   

    后来捕捉异常 
    代码为:
    try
    {
    CString str = "insert into test0806 values('98','150','2000-8-18')";
    _bstr_t bstrsql = (_bstr_t)str;
    m_rs = m_encaAdo.ExecuteSQL(bstrsql); 

    }
    catch(_com_error &e)
    {
    CString strErrDescribe;

    strErrDescribe.Format("Exception thrown for classes generated by #import"
    "\tCode = %81x\n"
    "\tCode meaning = %s\n"
    "\tSource = %s\n"
    "\tDescription = %s\n",
    e.Error(),
    e.ErrorMessage(),
    (LPCTSTR)(e.Source()),
    (LPCTSTR)(e.Description()));
    TRACE("%s  %s\r\n", (LPCTSTR)e.Source(),(LPCSTR)e.Description());

    char sLog[1024] = {0};
    sprintf(sLog, "%s  %s %s",  e.ErrorMessage(),(LPCTSTR)e.Source(), (LPCSTR)e.Description());
    // WriteLog(sLog,0);
    AfxMessageBox(sLog);
    } 现在提示是:无效指针  
    可是我不知道是怎么回事,初始化的地方都没落下啊,哪为兄弟指点下
    谢谢了 
      

  3.   

    CString str = "insert into test0806 values('10','150','2000-8-18')"; 
    _bstr_t bstrsql = (_bstr_t)str; 
    m_rs = m_encaAdo.ExecuteSQL(bstrsql); 看看你上面的代码~
    注意~ insert语句执行后是不会返回记录集的..只有select语句才返回~ 也就是说,你上面的代码,如果是执行的select语句不会发生异常..但insert插入语句不行~
    改成如下即可:
    CString str = "insert into test0806 values('10','150','2000-8-18')"; 
    _bstr_t bstrsql = (_bstr_t)str; 
    m_encaAdo.ExecuteSQL(bstrsql);