数据库多个表的查询问题

gkcc 2003-03-18 10:16:05
我在继承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
请问高手这是为什么?
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
small_wei 2003-03-20
  • 打赏
  • 举报
回复
select 中的字段应该与DoFieldExchange(CFieldExchange* pFX)中的变量相对应,否则就会出错!!!
象你这样情况,可以不用绑定,可用CRecordset::GetFieldValue来取值,具体操作可在MSDN中找到
gkcc 2003-03-19
  • 打赏
  • 举报
回复
1.你的里面怎么会有[wdeng].[wordid]?是外部键?还是这个是一个视图?
回:[wdeng].[wordid]表示wordid是wdeng里的一个字段,不是吗?
==========================================================
2.select 语句做绑定后,就不能随便改变select中字段数....
回:那该怎么办?
index和wdeng的字段类型都不一样,该怎么从查询结果里获得有关字段的值?

谢谢!!!
gkcc 2003-03-19
  • 打赏
  • 举报
回复
据一位网友说,进行数据绑定后,只能select *
于是我将那条sql该为了
select * from [wdeng] where word = 'nds' //word 是wdeng中一个字段
可是运行时,弹出 debug assertion failed 的对话框,说问题出在文件afxwin1.inl
的第22行{ ASSERT(afxCurrentResourceHandle != NULL);
return afxCurrentResourceHandle; }上
我那个index表是空的,wdeng中不是空的

请高手指点指点
甚急!!!!!!

small_wei 2003-03-18
  • 打赏
  • 举报
回复
select 语句做绑定后,就不能随便改变select中字段数,也就是说,select 中的字段应该与DoFieldExchange(CFieldExchange* pFX)中的变量相对应,否则就会出错。这就是数据库做绑定后使用不方便的原因。
cool_ice 2003-03-18
  • 打赏
  • 举报
回复
你的里面怎么会有[wdeng].[wordid]?是外部键?还是这个是一个视图?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧