我用的是智能指针。
_RecordsetPtr m_pUserSet;
FieldsPtr    m_pFieldsPtr;
FieldPtr     m_pFieldPtr;
....
CString sql = "select * from  person a , account_card b where  b.code(+) = a.code";
...
m_pFieldsPtr = m_pUserSet->Fields;
...
m_pFieldPtr   = m_pFieldsPtr->Item["name"]; //正确。访问其它字段都可以但是
m_pFieldPtr   = m_pFieldsPtr->Item["a.code"];//就是错误的,就是关联那个字段为什么啊,我该怎么访问他啊。

解决方案 »

  1.   

    连接多表时在返回的记录集中field名不需要加表前缀..
    重名field会导致field名不可访问,只能通过数字索引访问..
      

  2.   

    试试这个
    m_pFieldPtr=m_pUserSet->Fields->GetItem((short)n);///n表示段名的索引号
    str=(char*)(_bstr_t)m_FieldPtr->GetName();//取段名
            m_FieldPtr =m_pUserSet->Fields->GetItem((short)j);//取值
              CString value=(char*)(_bstr_t)m_FieldPtr->value.vt