关于RecordSet的问题

elated 2009-05-20 06:49:19

class CBOOK : public CRecordset
{
public:
CBOOK(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CBOOK)

     CStringA m_BOOK_ID;
CStringA m_ISBN;
CStringA m_BOOK_NAME;
CStringA m_AUTHOR;
CStringA m_TRANSLATOR;
CStringA m_PRESS;

public:
virtual CString GetDefaultConnect();
virtual CString GetDefaultSQL();
virtual void DoFieldExchange(CFieldExchange* pFX);
};

数据源打开后,如何指把数据源中的数据赋值给类成员变量?
"DoFieldExchange 是 RFX 的核心。该框架一旦需要将数据从数据源移动到记录集或从记录集移动到数据源,就会调用 DoFieldExchange。"
MSDN上这么写的,那么什么时候调用呢?
怎样指明数据的流向呢?是不是也像DoDataExchange()那样,用UpdateData(FALSE/TRUE)呢?
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
elated 2009-05-21
  • 打赏
  • 举报
回复
我知道我错哪里了,谢谢大家了
youhao1999 2009-05-21
  • 打赏
  • 举报
回复
通过中间控件传给变量
elated 2009-05-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 biweilun 的回复:]
LZ真是爱研究理论。我等不是这个档次的...
[/Quote]
别嘲笑我了,我是刚学的


CBOOK _BOOK ;
CString _strSql;
_strSql = "SELECT * FROM READER BOOK_ID =' ";
_strSql += m_strBookId ;
_strSql += " ' ";
_READER.Open(-1,_strSql);
//此时记录集中的成员值仍是构造函数执行后的值

打开成功了,也确保表中有这项.
我是不是还要调用什么函数?
oyljerry 2009-05-20
  • 打赏
  • 举报
回复
看 DoFieldExchange 等内部实现,以及跟踪一下MFC源代码等
biweilun 2009-05-20
  • 打赏
  • 举报
回复
LZ真是爱研究理论。我等不是这个档次的...
biweilun 2009-05-20
  • 打赏
  • 举报
回复
http://lw.china-b.com/jsjlw/20090430/1712636_1.html
biweilun 2009-05-20
  • 打赏
  • 举报
回复
使用 CRecordset::Move 或者菜单或工具栏命令在记录集中滚动,或是添加、更新和删除记录的时候,都将调用 DoFieldExchange 将数据从新的当前记录传输到字段数据成员。

biweilun 2009-05-20
  • 打赏
  • 举报
回复
CRecordset::Open 打开记录集对象的时候,执行记录集的查询,将列绑定到记录集的字段数据成员,并调用 DoFieldExchange 在第一个选定记录和记录集的字段数据成员之间交换数据。
光宇广贞 2009-05-20
  • 打赏
  • 举报
回复
看到了好多的CSTRING……啊……

4,011

社区成员

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

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