MFC里使用ADO的RecordSet指针时出现了Debug Assertion Failed问题

sinat_32051231 2017-05-28 07:38:58
程序是基于对话框的,功能大致是,在主对话框的搜索栏里搜索关键词,点击搜索,产生新的对话框并在对话框中显示搜索结果。

新的对话框中有一个ListCtrl控件,想要根据pRst(_RecordsetPtr指针)得到的的内容填充
想采用的方法是:
声明一个CStringArray xxx, 用它去获得pRst的所有行的内容,再把这个xxx传给新对话框对象dlg的构造函数,然后在ListCtrl中进行显示,
但是在把查询结果往CStringArray里填的时候出现了问题

触发断点指向这:
{ ASSERT(::IsWindow(m_hWnd)); return InsertItem(LVIF_TEXT, nItem, lpszItem, 0, 0, 0, 0); }

以下是出错代码部分
CString searchworin;//SQL语句
searchworin = "select Name,Occupation from Vw_Anime_Staff where AniName = '";
searchworin += AnimeName;
searchworin += "'";
pRst->Open( _variant_t(searchworin),pConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
CStringArray * staff = new CStringArray;
staff->SetSize(0,1);


while(!pRst->adoEOF)//当pRst移动到最后一条记录后,回到判断语句就出现报错
{
CString x =(LPCTSTR)(_bstr_t)pRst->GetCollect("name");
staff->Add(x);
CString y =(LPCTSTR)(_bstr_t)pRst->GetCollect("occupation");
staff->Add(y);

pRst->MoveNext();

}

还请各位前辈指点迷津。。大作业的deadline快到了。。很爆炸。。
...全文
963 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-06-29
  • 打赏
  • 举报
回复
引用 5 楼 zjq9931 的回复:
用赵老师的方法跟踪吧,这种问题应当比较容易跟踪出来的。如果不会,就在下面说说自己哪里不会。
  • 打赏
  • 举报
回复
用赵老师的方法跟踪吧,这种问题应当比较容易跟踪出来的。如果不会,就在下面说说自己哪里不会。
qq_36634306 2017-06-01
  • 打赏
  • 举报
回复
我碰到过这个问题。游标类型改为adOpenStatic
赵4老师 2017-05-29
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
sinat_32051231 2017-05-28
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
从提示的代码来看, 是窗口句柄无效, 应该是窗口没有创建或没有关联控件变量
之前上网查,也说是这个原因,但是,我出错的操作和窗口句柄好像没什么关系啊。。 我刚刚又试了试,我在while循环里直接写了个break; 在调试进入循环后,遇到break语句,依然出现同样的错误,这是为什么? while(!pRst->adoEOF)//当pRst移动到最后一条记录后,回到判断语句就出现报错 { break; CString x =(LPCTSTR)(_bstr_t)pRst->GetCollect("name"); staff->Add(x); CString y =(LPCTSTR)(_bstr_t)pRst->GetCollect("occupation"); staff->Add(y); pRst->MoveNext(); }
zgl7903 2017-05-28
  • 打赏
  • 举报
回复
从提示的代码来看, 是窗口句柄无效, 应该是窗口没有创建或没有关联控件变量

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧