这段代码有什幺错,能够编译,就是不能运行。出错信息也不明确。
UINT mcProc(LPVOID pParam)
{
CQueryToolDlg* pObject = (CQueryToolDlg*)pParam;
int nItem;
_variant_t v_instr_group_p2k,v_ext_instr_ref_p2k,v_main_market_p2k;
try
{
pObject->m_pRecordset.CreateInstance("ADODB.Recordset");
pObject->m_pRecordset->Open("select distinct B.instr_group_p2k,C.ext_instr_ref_p2k, B.main_market_p2k from instrument_p2k B, instr_ext_ref_p2k C where B.p2000_instr_ref_p2k = C.p2000_instr_ref_p2k and B.instr_group_p2k not in ('DEBT','CURR') and main_market_p2k!= 'HKSE DB' and C.instr_code_type_p2k='RIC'",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
pObject->m_bSuccess = TRUE;
while(!pObject->m_pRecordset->adoEOF)
{
v_instr_group_p2k = pObject->m_pRecordset->GetCollect("instr_group_p2k");
v_ext_instr_ref_p2k = pObject->m_pRecordset->GetCollect("ext_instr_ref_p2k");
v_main_market_p2k = pObject->m_pRecordset->GetCollect("main_market_p2k");
nItem=pObject->m_listTable.InsertItem(0xffff,(_bstr_t)v_instr_group_p2k);
pObject->m_listTable.SetItem(nItem,1,1,(_bstr_t)v_ext_instr_ref_p2k,NULL,0,0,0);
pObject->m_listTable.SetItem(nItem,2,1,(_bstr_t)v_main_market_p2k,NULL,0,0,0);
pObject->m_pRecordset->MoveNext();
}
}
catch(_com_error e)///catch abnormity
{
AfxMessageBox("Read database failed");//show error message
}
return 0;
}
void CQueryToolDlg::OnQuery()
{
UpdateData(true);
CQueryToolDlg* pNewObject = new CQueryToolDlg;
AfxBeginThread(mcProc,pNewObject);
}