我在继承CRecordSet生成我的recordset类时,引入了不止一个表.
CString CCommonRs::GetDefaultSQL()
{
return _T("[index],[wdeng]");
}
void CCommonRs::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CCommonRs)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T("[index].[wordID]"), m_wordID);
RFX_Long(pFX, _T("[index].[fileID]"), m_fileID);
RFX_Byte(pFX, _T("[index].[wordOffset]"), m_wordOffset);
RFX_Long(pFX, _T("[wdeng].[wordid]"), m_wordid2);
RFX_Text(pFX, _T("[wdeng].[word]"), m_word2);
//}}AFX_FIELD_MAP
}
可执行select [wdeng].[wordid] from [wdeng] 时
获得的wdeng.wordid的值都赋给了m_wordID,而非m_wordid2
请问高手这是为什么?

解决方案 »

  1.   

    你的里面怎么会有[wdeng].[wordid]?是外部键?还是这个是一个视图?
      

  2.   

    select 语句做绑定后,就不能随便改变select中字段数,也就是说,select 中的字段应该与DoFieldExchange(CFieldExchange* pFX)中的变量相对应,否则就会出错。这就是数据库做绑定后使用不方便的原因。
      

  3.   

    1.你的里面怎么会有[wdeng].[wordid]?是外部键?还是这个是一个视图?
    回:[wdeng].[wordid]表示wordid是wdeng里的一个字段,不是吗?
    ==========================================================
    2.select 语句做绑定后,就不能随便改变select中字段数....
    回:那该怎么办?
    index和wdeng的字段类型都不一样,该怎么从查询结果里获得有关字段的值?谢谢!!!
      

  4.   

    据一位网友说,进行数据绑定后,只能select *
    于是我将那条sql该为了
    select * from [wdeng] where word = 'nds'  //word 是wdeng中一个字段
    可是运行时,弹出 debug assertion failed 的对话框,说问题出在文件afxwin1.inl
    的第22行{ ASSERT(afxCurrentResourceHandle != NULL);
    return afxCurrentResourceHandle; }上
    我那个index表是空的,wdeng中不是空的请高手指点指点
    甚急!!!!!!
      

  5.   

    select 中的字段应该与DoFieldExchange(CFieldExchange* pFX)中的变量相对应,否则就会出错!!!
    象你这样情况,可以不用绑定,可用CRecordset::GetFieldValue来取值,具体操作可在MSDN中找到