有谁碰到过下面这个奇怪的问题???(50分)

  • 主题发起人 主题发起人 XingQuguang
  • 开始时间 开始时间
X

XingQuguang

Unregistered / Unconfirmed
GUEST, unregistred user!
明明有符合条件的记录,


select.....
execsql.......
active=true
后,

query1.recordcount 总等于-1?

就算没有记录也应该等于0呀?

为什么?

有哪为大侠也碰到过,请指点?
 
只有文件型数据库的RecordCount 属性是有用的,
客户机/服务器的RecordCount是无用的,总返回-1。
 
那如何解决呢? 请指教!
 
那就用SQL语句了,它不是有一个统计语句吗?
最好不要在记录多的服务器上面搞,那会花费相当长的时间。
 
Query控件进行查询时,即用select时,只能用open方法
query1.close;
query1.sql.clear;
query1.add('select...');
query1.open;
而不能使用execsql,execsql只用于delete table,create table等不返回结果
的方法
 
XingQuguang:
在SQL语句中使用'Order by ' :
例如:‘Select * from YourTable order by IDNo’就可以使用RecordCount了.
在 Delphi+ SQL Server 7.0 上通过。其它没试过.
 
看到以前的帖子有用

select count(*) as....

可我还是不明白怎么用? 怎么把统计数目赋给
一个变量呢?
 
我用的是sybase

xueminliu 的方法不灵,还是等于-1,

还得用count(*) 可我没用过,具体怎么得到统计结果呢?
 
select count(*) as num1 from ....
open;
a:=fieldbyname('num1').value;
 
XingQuguang:
事例如下:

query1.close;
query1.sql.clear;
query1.add('select Count(*) as MyCount ... ');
query1.open;
RecordCount:=Query1.fieldbyname('MyCount').asinteger;
就可以取到统计数目.
 
不不不,那语句会把结果传给QUERY控件,并自动产生一个统计字段,通常

字段后有跟一个_SUM,你自已用QUERY控件试试就明白了
 
大侠们的方法是正确的,我已经通过了,谢谢各位。
 
后退
顶部