【问题标题】:Debug Assertion Failed Expression: GetInterface()!=0 error when writing to database tableDebug Assertion Failed Expression: GetInterface()!=0 error when writing to database table
【发布时间】:2014-03-16 21:31:49
【问题描述】:

我正在开发一个 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>

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

【问题讨论】:

  • 非常粗制滥造的错误处理。当您收到指示失败的错误代码时,不要只说“它不起作用!”因为这并不能帮助任何人弄清楚它为什么不起作用,包括你。不顾失败继续执行代码当然是一个非常严重的错误。

标签: c++ mfc oledb


【解决方案1】:

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

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

查看 m_spCommand 成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2020-06-07
    • 2019-08-30
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多