为什么下面的查询统计这么慢呀。???procedure TForm1.Button2Click(Sender: TObject); var name01:string; ste01:integer; lnfen1:integer; lnfen2:integer; lx1:string; kzb01:string; kzb02:string; ktk01:integer; ktk02:integer; kzb701:string; kzb702:string; kzb703:string; kzb704:string; ktk701:integer; ktk702:integer; begin begin adotable2.First; while not adotable2.eof do begin lx1:=adotable2.fieldbyname('leixin').AsString; adotable2.edit; adotable2.Post; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.sql.add('select count(t11) as lnfen2 from tk where t11 like ''%'+lx1+'%'''); adoquery2.Open; lnfen2:=adoquery2.fieldbyname('lnfen2').asinteger; adotable2.Edit; adotable2.fieldbyname('yti').asinteger:=lnfen2; adotable2.Next; end; end; begin adotable3.First; while not adotable3.Eof do begin adotable3.open; adotable3.edit; kzb01:=adotable3.fieldbyname('zhibiao').asstring; kzb02:=adotable3.fieldbyname('leixin').asstring; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.sql.add('select count(t13) as ktk01 from tk where t13 like ''%'+kzb01+'%''and t11 like ''%'+kzb02+'%'''); adoquery2.Open; ktk01:=adoquery2.fieldbyname('ktk01').asinteger; adotable3.Edit; adotable3.FieldByName('yts').asinteger:=ktk01; adotable3.Next; end; end; begin adotable4.First; while not adotable4.Eof do begin adotable4.open; adotable4.edit; kzb701:=adotable4.fieldbyname('zhibiao').asstring; kzb702:=adotable4.fieldbyname('leixin').asstring; kzb703:=adotable4.fieldbyname('nandu').asstring; kzb704:=pchar(kzb703); adoquery2.Close; adoquery2.SQL.Clear; adoquery2.sql.add('select count(t13) as ktk701 from tk where t13 like ''%'+kzb701+'%''and t11 like ''%'+kzb702+'%'' and t12 like ''%'+kzb704+'%'' '); adoquery2.Open; ktk701:=adoquery2.fieldbyname('ktk701').asinteger; adotable4.Edit; adotable4.FieldByName('yts').asinteger:=ktk701; adotable4.Next; end; end;end;
我也想
name01:string;
ste01:integer;
lnfen1:integer;
lnfen2:integer;
lx1:string;
kzb01:string;
kzb02:string;
ktk01:integer;
ktk02:integer;
kzb701:string;
kzb702:string;
kzb703:string;
kzb704:string;
ktk701:integer;
ktk702:integer;
begin begin
adotable2.First;
while not adotable2.eof do begin
lx1:=adotable2.fieldbyname('leixin').AsString;
adotable2.edit;
adotable2.Post;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.add('select count(t11) as lnfen2 from tk where t11 like ''%'+lx1+'%''');
adoquery2.Open;
lnfen2:=adoquery2.fieldbyname('lnfen2').asinteger;
adotable2.Edit;
adotable2.fieldbyname('yti').asinteger:=lnfen2;
adotable2.Next;
end;
end; begin
adotable3.First;
while not adotable3.Eof do begin
adotable3.open;
adotable3.edit;
kzb01:=adotable3.fieldbyname('zhibiao').asstring;
kzb02:=adotable3.fieldbyname('leixin').asstring;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.add('select count(t13) as ktk01 from tk where t13 like ''%'+kzb01+'%''and t11 like ''%'+kzb02+'%''');
adoquery2.Open;
ktk01:=adoquery2.fieldbyname('ktk01').asinteger;
adotable3.Edit;
adotable3.FieldByName('yts').asinteger:=ktk01;
adotable3.Next;
end;
end;
begin
adotable4.First;
while not adotable4.Eof do begin
adotable4.open;
adotable4.edit;
kzb701:=adotable4.fieldbyname('zhibiao').asstring;
kzb702:=adotable4.fieldbyname('leixin').asstring;
kzb703:=adotable4.fieldbyname('nandu').asstring;
kzb704:=pchar(kzb703);
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.add('select count(t13) as ktk701 from tk where t13 like ''%'+kzb701+'%''and t11 like ''%'+kzb702+'%'' and t12 like ''%'+kzb704+'%'' ');
adoquery2.Open;
ktk701:=adoquery2.fieldbyname('ktk701').asinteger;
adotable4.Edit;
adotable4.FieldByName('yts').asinteger:=ktk701;
adotable4.Next;
end;
end;end;
工作2年Delphi经验,合同即将到期,不准备续签