CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

紧急求助:使用VC通过ODBC访问SQL 7.0时为何无法取得总条数?!急死我了!!!!

楼主Linxianjie(Sunny)2001-12-08 15:06:08 在 VC/MFC / 基础类 提问

 
  具体代码为:  
  CSqlSet   *pSet;   //   CRecordset派生类  
  m_strSql   =   "SELECT   *   FROM   [人]";  
  try  
  {  
  pSet   =   new   CSqlSet;  
  if(!pSet->Open(CRecordset::dynaset,   m_strSql))  
  {  
  delete   pSet;  
  MessageBox("登入失败!");  
  return;  
  }  
  #if   0   //   问题1:使用这种方法,IsBOF函数返回值总是1,程序将死循环!!错误!!  
  int   count   =   0;  
  while(!pSet->IsBOF())    
  {  
  TRACE("\r\n->   count   =   %d",   ++count);  
  pSet->MoveNext();  
  }  
  #else   //   问题2:使用这种方法,GetRecordCount函数返回值为1!错误!!  
  if(!pSet->IsBOF())   pSet->MoveLast();  
  #endif  
  }  
  catch(CDBException   *   e)  
  {  
  e->ReportError();  
  e->Delete();  
  delete   pSet;  
  return;  
  }  
  m_pRecordSet   =   pSet;  
  m_pRecordSet->GetRecordCount();  
  TRACE("\r\n==>   Total   lines   =   %d",   m_pRecordSet->GetRecordCount());  
   
   
  请问:  
   
  1、上面两种记数方法是否有误?如果有请指教。  
  2、是否还有其他的方法?  
   
  谢谢  
   
  问题点数:20、回复次数:11Top

1 楼Ouyangyifeiczy(子浪)回复于 2001-12-08 15:22:49 得分 0

GetRecordCount得到的数据不一定正确吧,一般不用这个,VB才用这个呀Top

2 楼Ouyangyifeiczy(子浪)回复于 2001-12-08 15:23:39 得分 0

要是不麻烦,干脆记数。Top

3 楼Linxianjie(Sunny)回复于 2001-12-08 16:01:27 得分 0

两位所说的我都知道,但是有什么别的办法没有?  
   
  使用记数   --   问题是:程序会死循环!!  
   
   
  -------------------------------------------  
  #if   0   //   问题1:使用这种方法,IsBOF函数返回值总是1,程序将死循环!!错误!!  
  int   count   =   0;  
  while(!pSet->IsBOF())    
  {  
  TRACE("\r\n->   count   =   %d",   ++count);  
  pSet->MoveNext();  
  }  
  #else   //   问题2:使用这种方法,GetRecordCount函数返回值为1!错误!!  
  if(!pSet->IsBOF())   pSet->MoveLast();  
  #endif    
  }  
  Top

4 楼XDZXG()回复于 2001-12-08 16:25:27 得分 0

怎么会出这种问题,我有数据库还没遇到过这种事情Top

5 楼hgw111(hg)回复于 2001-12-08 16:30:48 得分 20

1在ODBC中,函数GetRecordCount不能得到具体的记录数,DAO的函数GetRecordCount可以  
  2函数IsBOF()用错了,应是IsEOF()Top

6 楼liu_feng_fly(笑看风云 搏击苍穹 衔日月)回复于 2001-12-08 16:48:56 得分 0

你可以用这条sql语句"select   count(*)   as   RecCount   from   ..."然后,通过RecCount就知道有多少条记录了Top

7 楼elc(晴海孤帆)回复于 2001-12-08 20:13:39 得分 0

将表名换成e文,try   againTop

8 楼cmpp()回复于 2001-12-08 20:25:09 得分 0

用活动游标Top

9 楼Linxianjie(Sunny)回复于 2001-12-08 22:45:13 得分 0

hgw111(hg)说的对!  
  给分!  
  Top

10 楼Linxianjie(Sunny)回复于 2001-12-08 22:45:44 得分 0

谢谢   hgw111(hg) Top

11 楼elc(晴海孤帆)回复于 2001-12-21 21:31:20 得分 0

不是   这样   的  
  你可以   自己   作些   处理   来   获得   的  
   
  GetRecordCount返回的   是   当前的记录数    
   
  你可以   将指针移动到末尾   后      
   
  再调用   的      
   
   
   
  Top

相关问题

  • 初学者问题之三:"SQL"+"ODBC"+"VC++"
  • 有没有用vc连过Watcom SQL 4.0数据库的,插入8万条数据后速度奇慢,什么原因?
  • 有没有用vc连过Watcom SQL 4.0数据库的,插入8万条数据后速度奇慢,什么原因?
  • VC+SQL
  • VC通过ODBC连接Sql Server数据库的问题
  • 请问SQL Server2000 的数据库能用VC的ODBC访问吗?
  • SQL SERVER和VC++用ODBC连接的问题?
  • 在SQL Server中如何限定查询得条数?
  • sql语句查找指定条数记录
  • 如何迅速删除sql server中的几十万条数据

关键词

  • 函数
  • 循环
  • pset
  • getrecordcount
  • isbof
  • precordset
  • 返回
  • 错误
  • 使用这种方法
  • 记录

得分解答快速导航

  • 帖主:Linxianjie
  • hgw111

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo