Debug Assertion Failed Expression: GetInterface()!=0 error when writing to database table
Posted
技术标签:
【中文标题】Debug 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>
更新和插入查询也会发生同样的情况,但表记录会更新。 谁能告诉我我的错误在哪里? 谢谢你。 :)
【问题讨论】:
非常粗制滥造的错误处理。当您收到指示失败的错误代码时,不要只说“它不起作用!”因为这并不能帮助任何人弄清楚它为什么不起作用,包括你。不顾失败继续执行代码当然是一个非常严重的错误。 【参考方案1】:我看不到你从哪个基类派生出你的类。我假设你有一个 Command 对象。
所以发生的情况是您已经使用 Open 调用执行了操作。但是在打开之后,您需要进行关闭操作,然后才能通过新语句和打开操作再次使用该命令。
查看 m_spCommand 成员。
【讨论】:
以上是关于Debug Assertion Failed Expression: GetInterface()!=0 error when writing to database table的主要内容,如果未能解决你的问题,请参考以下文章
MFC中的Debug Assertion Failed 如何查找原因
如何在 Visual Studio 中跳过 Debug Assertion Failed 并直接中断
debug assertion failed!是啥问题?高分求助
vc++ 调试时出现Debug Assertion Failed!该怎么办?
opencv检错:程序运行过程正常,当跳出函数时出现断言错误(Debug Assertion Failed)
用Microsoft Visual Studio 2010编译下面这个程序总是提示Debug Assertion Failed