调试断言失败表达式:写入数据库表时出现GetInterface()!= 0错误

时间:2014-03-16 21:31:50

标签: c++ mfc oledb

我正在开发一个MFC项目,该项目在我的SQL Server上传递特定的表。但是当我尝试进行删除查询时,我在运行时收到Debug Assertion Failed错误消息,当我检查我的表时也没有删除任何内容。 这是我认为错误的代码:

<pre> HRESULT hr;
    hr=COLEDBTESTSetAccessor::OpenDataSource();
    if(FAILED(hr))
        MessageBox(NULL,"Connection Failed\n","",MB_OK);
    else
        MessageBox(NULL,"Connected\n","",MB_OK);
    CString strString;
    strString.Append("DELETE FROM PHONE_NUMBERS WHERE ID=");
    CString strParam;
    strParam.Format("%d",nId);
    strString.Append(strParam);
    MessageBox(NULL,(LPCSTR)strString,"",MB_OK);
    hr=this->Open(m_session,strString); <code>

更新和插入查询也会发生同样的情况,但表记录会更新。 谁能告诉我我的错误在哪里? 谢谢。 :)

1 个答案:

答案 0 :(得分:0)

我无法看到你从哪个基类派生出来。我假设你有一个Command对象。

所以会发生的事情是您已经使用Open调用执行了操作。但是在打开之后,您需要一个关闭操作,然后才能再次使用该命令和新操作。

查看m_spCommand成员。