关于如果使用query控件,怎样获得数据查询记录数,请详细说明 (100分)

  • 主题发起人 主题发起人 webdou
  • 开始时间 开始时间
W

webdou

Unregistered / Unconfirmed
GUEST, unregistred user!
[h1][/h1][red][/red][:)]
 
aList:=TStringList.Create;
with Query1 do
begin
Close;
Sql.Text:='select * from 表名';
Open;
if IsEmpty then
Exit;
i:=0;
while not Eof do
begin
for j:=0 to FieldList.Count-1 do
aList.Items.Strings:=aList.Items.Strings+Fields[j].AsString;
Inc(i);
Next;
end;
end;

 
放一个DBGrid,DataSource,Query(DataBase属性设置好)
DBGrid.DataSource:=DataSource1,DataSource1.DataSet:=Query1,
OK了.
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('自己的SQL语句');
Execsql;//或者open
end;
DBGrid显示就搞定了.
Query1.RecordCount为查询纪录数.
 
使用Query控件在对一个表操作时,RecordCount返回的是记录数,如果返回的记录是
由多个表联合得到的,RecordCount=-1;
这是BDE的问题,如果此时想知道记录数,不如用SQL查询:

Query1->SQL->Add("select count(*) as RecordNumber from table1,table2 where ....")
然后读RecordNumber的值。
 
1。放一个DATAMODULE,里面放DataBase,QUERY,DataSource(属性要设置好)
新建一个FORM,上面放一个DBGrid,DATASOURCE设置为DATASOURCE1。
2。FORM的ONSHOW事件里面的代码:
with Query1 do
begin
Close;
Sql.Clear;
Sql.ADD('SELECT * FROM TABLE');
OPEN;
end;
3。记录数:
QUERY1.LAST;//必须要这句
Query1.RecordCount //表示查询纪录数.
 
来晚了,同意hawkfly
 
放一个DBGrid,DataSource,Query(DataBase属性设置好)
DBGrid.DataSource:=DataSource1,DataSource1.DataSet:=Query1,
with query1 do
begin
close;
sql.clear;
sql.add('select * from table1');//在这可以使用select ,update等
open;//如果不为select要用execsql;
end;
quey1.recordcount即为查询数据的记录数
听说如果记录数比较大时,会返回-1
可以这样改善
query1.last;
query1.recordcount;
 
都尽完了!还有一种方式
i:=0;
query1.first;
while not query1.eof do
begin
i:=I+1;
query1.next;
end;
很笨的办法!
实在没办法时用!
 
楼上说的不是在浪费时间吗?
如果数据量大那要多久才能读完?
 
后退
顶部