如何得到记录总数

slwang2003 2005-12-09 04:39:59
如题
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunxiaohui 2005-12-16
  • 打赏
  • 举报
回复
1、select count(*) from aaaa

2、select * from aaaa
recordcount

这两种方法在使用时有不同。
如只是为了了解符合条件的记录数,不取记录信息,应使用select count(*) from aaaa,如使用第二种方法,因系统要将数据库中的记录读回,在记录较多时,效率极低,并可能超时。

如需取数据,并使用记录数,则使用第二种fangfa。

h98458 2005-12-09
  • 打赏
  • 举报
回复
回复人: slwang2003(wsl) ( ) 信誉:85 2005-12-09 17:16:00 得分: 0


如果 没有记录返回 程序会返回一个错误数字(一个非零的) 怎么解决


--------------------------------------------------------------------
这样:

舍近求远的:
qry->Close();
qry->SQL->Clear();
qry->SQL->Add("select isnull(count(*),0) as zs from aaa");
qry->Open();
int count = qry->FieldByName("zs")->AsInteger;//your value

wf2091139 2005-12-09
  • 打赏
  • 举报
回复
没有记录?

你是用什么返回的? 如果是是数据表的话,查询的要零条记录那么上面的办法返回也应该是零的啊,否则要么就是出错了。

如果要是存储过程返回一个非记录集,那可以用它的 return 来取值。
slwang2003 2005-12-09
  • 打赏
  • 举报
回复
如果 没有记录返回 程序会返回一个错误数字(一个非零的) 怎么解决
wf2091139 2005-12-09
  • 打赏
  • 举报
回复
方法很多,
简单的:
qry->Close();
qry->SQL->Clear();
qry->SQL->Add("select * zs from aaa");
qry->Open();
int count = qry->ReocrdCount;//your value

舍近求远的:
qry->Close();
qry->SQL->Clear();
qry->SQL->Add("select count(*) zs from aaa");
qry->Open();
int count = qry->FieldByName("zs")->AsInteger;//your value

qry->Close();
qry->SQL->Clear();
qry->SQL->Add("Declare @ret int");
qry->SQL->Add("select @ret = count(*) from aaa");
qry->SQL->Add("Select @ret Ret")
qry->Open();
int count = qry->FieldByName("Ret")->AsInteger;//your value
CACACACACA 2005-12-09
  • 打赏
  • 举报
回复
数据集的RecordCount属性

如ADOTable->ReocrdCount;

select sum(关键字段) as 记录数 from MyTabel
返回的值也可以.

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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