CString                      strcomname;
CString                      strstatus;
_variant_t                   vNull;
_variant_t                   hr;
vNull.vt            =        VT_ERROR;
vNull.scode         =        DISP_E_PARAMNOTFOUND;
_bstr_t bstrProc =( L"sp_who2 " ); 
m_com.CreateInstance( __uuidof( Command ) ); // 创建命令对象
m_com->ActiveConnection = m_con;             // 指明当前连接对象
m_com->CommandText      = _bstr_t( bstrProc ); // 命令文本
m_com->CommandType      = adCmdStoredProc;     // 命令类型
m_set=m_com->Execute( &vNull,&vNull,adCmdUnknown ); 
int i=0;
while(!m_set->adoEOF)
{
hr=m_set->GetCollect("hostname");
if (hr.vt!=VT_NULL)
{
strcomname=(char*)(_bstr_t)hr;
strcomname.TrimRight();
m_display.InsertItem(i,strcomname);
}
hr=m_set->GetCollect("status");
if (hr.vt!=VT_NULL)
{
strstatus=(char*)(_bstr_t)hr;
strstatus.TrimRight();
m_display.SetItemText(i,1,strstatus);
}
hr=m_set->GetCollect("dbname");
if (hr.vt!=VT_NULL)
m_display.SetItemText(i,2,(char*)(_bstr_t)hr);
hr=m_set->GetCollect("LastBatch");
if (hr.vt!=VT_NULL)
m_display.SetItemText(i,3,(char*)(_bstr_t)hr);
m_set->MoveNext();
i++;
}
出错的地方在m_com->ActiveConnection = m_con,但不知道为什么