程序是基于对话框的,功能大致是,在主对话框的搜索栏里搜索关键词,点击搜索,产生新的对话框并在对话框中显示搜索结果。
新的对话框中有一个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快到了。。很爆炸。。