动态集怎样获取取记录个数呢?

removefile 2013-02-08 10:18:08
ODBC 连接数据库,选择的 dynaset 动态集,无法遍历记录集,运行时总是提示“操作失败!无当前记录”
 while(!m_pSet->IsEOF ())
{
m_pSet->MoveNext();

}
m_iRecordsetCount = m_pSet->GetRecordCount ();

m_iRecordsetCount 是我定义的一个变量,用来保存记录总,结果为0。
如果改成snapshot 快照方式就可以遍历记录集,也能够获取记录总个数,dynaset动态集就不行,这是怎么回事啊?还有就是快照方式不能添加或删除记录,动态集方式就可以添加和删除,数据源是用 access做的,求高手指点
...全文
126 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
akmm88 2013-02-15
m_pSet->Open() 默认是 仅向前游标, 你要设置为 adOpenKeyset
  • 打赏
  • 举报
回复
removefile 2013-02-15
问题解决了,不是不能执行循环,而是循环结束后 m_pSet没有指向记录,所以才会出现“操作失败,无当前记录”这种错误,在循环后面加一句 m_pSet->MoveFirst();就可以了,还要调用 UpdateData(FALSE);才能将 m_iRecordsetCount 变量结果显示出来,这应该是动态集和快照模式的不同之处吧
  • 打赏
  • 举报
回复
removefile 2013-02-14
可以添加、删除、编缉,就是不能遍历记录
  • 打赏
  • 举报
回复
removefile 2013-02-13
动态集怎么就不能获取记录数呢?
  • 打赏
  • 举报
回复
removefile 2013-02-11
这个我试过了,没用,真是奇怪
  • 打赏
  • 举报
回复
hdg3707 2013-02-09
m_pRecordSet->Open(_bstr_t(sqlname),_variant_t((IDispatch *)m_pConnection,true), adOpenKeyset, adLockOptimistic, adCmdText 这么试试一下,同时你还要看连接语句_ConnectionPtr 是否合适
  • 打赏
  • 举报
回复
hdg3707 2013-02-09
动态集可以取得记录及记录数,是不是什么参数不合适,我基本就用动态集取得记录集.
  • 打赏
  • 举报
回复
hdg3707 2013-02-09
m_pSet->MoveFirst();//那就加这句试试,不过感觉没用 while(!m_pSet->IsEOF ()) { m_pSet->MoveNext(); }
  • 打赏
  • 举报
回复
removefile 2013-02-09
这都是VS2010 APPWIZARD自动生成的框架,看不到OPEN()函数,都是默认值,“操作失败,无当前记录”这个错误是不是没有设置起点呢?导致循环无法开始,难道动态集的游标默认不指向任何记录吗?快照模式就可以运行这个循环
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库
加入

3957

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2013-02-08 10:18
社区公告
暂无公告