我用DAO来存取access数据库,打开一个表后如何得到记录总数呢? 用MovePrev()如何检测到已经到了第一条记录呢?用IsBOF()为什么检测不到呢?

sunboy_hb 2003-08-21 08:07:14
?
...全文
113 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunboy_hb 2003-08-24
  • 打赏
  • 举报
回复
huang_yu(HY) 的方法行,你可以先用
if(!(corpset.IsBOF()||corpset.IsEOF()))//不为空
{}

检测一下.挺好用的.
commandconque 2003-08-23
  • 打赏
  • 举报
回复
huang_yu(HY) 的方法存在严重的漏洞:
当数据集合为空时,该方法行不通,并且造成致命错误,推出程序!!
VCP4 2003-08-22
  • 打赏
  • 举报
回复
运行一篇
fgwf2 2003-08-22
  • 打赏
  • 举报
回复
gz
huang_yu 2003-08-22
  • 打赏
  • 举报
回复
得到记录总数:
dateset.MoveFirst()
dataset.MoveLast()
count=database.RecordCount();
判断是否为空:
if(!(corpset.IsBOF()||corpset.IsEOF()))//不为空
{}
benz600 2003-08-21
  • 打赏
  • 举报
回复
dao必须通过遍历记录的方法统计总记录书,同意一楼的意见,
wj59 2003-08-21
  • 打赏
  • 举报
回复
CDaoRecordset::GetRecordCount( );

Call this member function to find out how many records in a recordset have been accessed.


To force the last record to be accessed, call the MoveLast or FindLast member function for the recordset.
sunboy_hb 2003-08-21
  • 打赏
  • 举报
回复
没有rowcount()类似的函数吗?

另外,我程序启动自动MoveFirst(),但是用IsBOF()却不返回0
Akagg 2003-08-21
  • 打赏
  • 举报
回复
使用MoveNext();
设置一个计数变量,以IsEOF()为结束,便可得到总记录数。
IsBOF()应该可以判别首条记录
jsjxyh 2003-08-21
  • 打赏
  • 举报
回复
获取记录集的个数大致有两种方法:
1:遍历法,但速度慢,尤其对于数据较多、服务器不在本机的数据库。优点是实现较简单。
2:SQL查询法,速度快,但要求懂SQL语法。
commandconque 2003-08-21
  • 打赏
  • 举报
回复
我来说说我的办法直接获得记录的数量,稍微麻烦点:
定义、初始化部分。。。省略
连接部分。。。省略
m_pRecordset=m_pConnection->Execute("SELECT COUNT(*) FROM ... WHERE ...",
&RecordsetAffected,adCmdText);
/////m_pRecordset为数据集, m_pConnection 为数据连接对象;
_variant_t index =(long)0;
_variant_t count=m_pRecordset->GetCollect(index);
cont.lVal中记录的是记录的总数。
实际上是让数据表执行一个统计的SQL语句,看统计的结果,
husband 2003-08-21
  • 打赏
  • 举报
回复
调用CDaoRecordset::GetRecordCount(),就可以得到,你是一下就知道了
采用CRecordset打开记录集,才需要遍历所有记录得到总记录数
sunboy_hb 2003-08-21
  • 打赏
  • 举报
回复
GetRecordCount( );如记录时返回1,否则为0;

4,011

社区成员

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

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