BDE的Recount的确是不对的,它的HELP就提到: Note: Use RecordCount with care, because record counting can be a costly operation, especially for SQL queries that return large result sets. Generally, an application should only use RecordCount with Paradox and dBASE tables. 一般BDE的Recount只对桌面数据库有用,如果你要记录数,要么先用 select count(*) 先查一遍(N年前没其它引擎时用) 要么改成其它数据引擎(如ADO的确没问题)
看看有多少行?应该不会有这个问题吧,没遇到过,一直用 Ado
Note: Use RecordCount with care, because record counting can be a costly operation, especially for SQL queries that return large result sets. Generally, an application should only use RecordCount with Paradox and dBASE tables.
一般BDE的Recount只对桌面数据库有用,如果你要记录数,要么先用
select count(*) 先查一遍(N年前没其它引擎时用)
要么改成其它数据引擎(如ADO的确没问题)
Query1.First;
Query1.Last;
再试试
Query1.FetchAll;
ShowMessage(IntToStr(Query1.RecordCount));
谢谢keiy。但问题是现在查出来的数据都少了,就算我得到了正确的记录数也没用,实际得到的条数还是不够。这样绑定到TcxGrid中的记录数还是少,最后的合计还是不对。
难道BDE的取出来的记录数都会变吗?
一定要用ADO才能解决?
用ado返回oracle的recordcount也经常是0或天文数字,哎,什么时候才有专业的数据库驱动开发商哦
select count(*) from tb
delphi:
ShowMessage(IntToStr(qry_BaseTemp.RecordCount));
兩者比較一下就知道了,本人一直用cxgrid,沒有任何bug...