本人用BDE中的query控件,根据我的sql语句检索数据库, 已经得到数据但我想知道我得到了多少条记录,我从它的recordset属性为什么每次取得的都是-1,请问如何得到检索到的记录数?
解决方案 »
- dbradiogroup
- 在vista下成功安装/使用delphi6,散分
- DXTreelist显示大量记录出错(急)
- corba在广域网上的调用问题
- 請給一個自己寫的delphi類,然後如何應用到delphi中的實例
- 请问Delete函数的用法是这样的吗?(在线等)
- 100分奉上,有关于ADOTable的记录刷新和定位问题?
- 本人自己开发了许多ocx控件(用VB),但现在想在Delphi中使用却无法通过编译,请各位高手指教。
- 哪里有installshield express for delphi 6或bde数据库引擎下载????
- 如何将字符串转换成16进制数?急!在线给分!
- 请问windows时如何识别进程已经死掉了?
- Delphi新手做了一个使用SQL Server数据库的程序,如何打包比较合适?
否则用RecordCount 可能不准确。
First;
n:=recordcount;
select count(*) Num from xxx 尤其对数据量很大,网络环境中效率比RecordCount要高出很多很多!
因为
select count(*) from xxx where ....................
1.多了一次服务器交互
2.有可能表的记录在两次交户之间发生了变化,从而得出错误数据。
3.客户机判断速度虽然比服务器的慢,并不会比一次网络交互慢。如果没有得到数据集,建议用count(*),100万的记录也不用1秒。
不过如果你想得到整个表(而不是查询)的记录数又不需要太精确,你可以在系统表
中直接得到recountcount字段,---但速度来说,这是最快的!
n:=RecNo;
--------------------------
Query.RecordCount--------------------------
select count(*) from xxx where ………………
RecordCount-->如果是返回数据集的查询,用这个得到返回的记录数。
RowsAffected-->如果是不返回数据集的查询语句,如Insert,Delete等,用这个得到所影响的记录数。