void CFileQuery::OnQuery() 
{
// TODO: Add your control notification handler code here
m_ctlList.DeleteAllItems();
_RecordsetPtr m_pRecordset;
CString strSQL;
HRESULT hr;
//init query string
strSQL="select * from simplelist";
UpdateData(TRUE);
if(!m_strFileName.IsEmpty())
{
strSQL+=" where softBasic_Name like '"+m_strFileName+"%'";
}
try
{
hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
{
hr=m_pRecordset->Open(_variant_t(strSQL),(IDispatch*)theApp.m_pConnect,adOpenDynamic,adLockOptimistic,adCmdText);
}
TRACE("count=%d",m_pRecordset->GetRecordCount());
int iCount=m_pRecordset->GetRecordCount();
if(m_pRecordset->GetRecordCount()>0)
{
m_pRecordset->MoveFirst();
}
else
{
AfxMessageBox("没有记录!");
m_pRecordset->Close();
m_pRecordset=NULL;
m_strFileName="";
UpdateData(FALSE);
return;
}
int nItem=0;
while(!m_pRecordset->adoEOF)
{
nItem=m_ctlList.InsertItem(0xffff,_bstr_t(m_pRecordset->GetCollect("softbasic_id")));
for(int i=1;i<m_pRecordset->Fields->Count;i++)
m_ctlList.SetItem(nItem,i,1,_bstr_t(m_pRecordset->Fields->GetItem(_variant_t((long)i))->Value),NULL,0,0,0);
m_pRecordset->MoveNext();
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
m_pRecordset->Close();
m_pRecordset=NULL;
return;
}
想作成根据文件名来进行查询,可是第一次生成的记录集为空,则以后都为空?为什么?好象生成的记录集没有被刷新!