(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect 错误

(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect 异常
sql.Format (L"SELECT * FROM [CH_User] WHERE UserName='%s'", strName ); //姓名,密码  
  vSQL =( _bstr_t)sql;
  _RecordsetPtr m_pRecordset;
  m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
  if (m_pRecordset->adoEOF)
  m_check = FALSE;
  else
  {
  CString Pwd;
  Pwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect ("Pwd");
  }

编译成功, 单步运行, 在最后pwd那句出现异常, 提示:
***.exe 中的 0x7c812afb处未处理异常 : Microsoft c++ 异常:
内存位置 0x0013e5a8处的 _com_error.

中断指向 msado15.tli文件中的GeCollect函数 ,最后一行return处。 
inline _variant_t Recordset15::GetCollect ( const _variant_t & Index ) {
  VARIANT _result;
  VariantInit(&_result);
  HRESULT _hr = get_Collect(Index, &_result);
  if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
  return _variant_t(_result, false);
}

请问什么原因?

编译环境是VS2008 MFC, 这几句是从VC++移过来的。
连接数据库, UPDATA修改数据库都是没问题。
谢啦~

------解决方案--------------------
_variant_t Recordset15::GetCollect ( const _variant_t & Index )
参数需要传递index,"Pwd"在你表的第几列就传几
比如第3列就传2: GetCollect(_variant_t((long)2))
------解决方案--------------------
探讨
_variant_t Recordset15::GetCollect ( const _variant_t & Index )
参数需要传递index,"Pwd"在你表的第几列就传几
比如第3列就传2: GetCollect(_variant_t((long)2))