delphi SQL的一段代码,运行很慢,求优化。
delphi吧
全部回复
仅看楼主
level 1
zhou722101 楼主
procedure TForm1.Button26Click(Sender: TObject);
var
i,i1:integer;
s,s1:string;
begin
datasource1.enabled:=false;
while True do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
s:='select * from 糗百 where 数量 < 1';
//showmessage(s);
ADOQuery1.SQL.Add(s);
ADOQuery1.Open;
if adoquery1.recordcount=0 then break;
s1:=adoquery1.fieldbyname('网名').asstring;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
s:='select * from 糗百 where 网名 = '+''''+s1+'''';
//showmessage(s);
ADOQuery1.SQL.Add(s);
ADOQuery1.Open;
i1:=adoquery1.recordcount;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
s:='update 糗百 set 数量 ='+inttostr(i1)+' where 网名 = '+''''+s1+'''';
//s:='update 糗百 set 数量 = ( select count(*) from 糗百 where 网名 = '+''''+s1+''''+' )'+' where 网名 = '+''''+s1+'''';
//showmessage(s);
ADOQuery1.SQL.Add(s);
ADOQuery1.execsql;
memo2.Lines.Add(s1+' 数量:'+inttostr(i1));
//for I := 0 to adoquery1.recordcount - 1 do
// begin
// adoquery1.Edit;
// adoquery1['数量']:= adoquery1.recordcount;
// adoquery1.Post;
// adoquery1.next;
// end;
end;
datasource1.enabled:=true;
end;
2016年01月18日 01点01分 1
level 2
你是想用while. Do无限循环搜索么,如果不是
用if看看
2016年01月18日 04点01分 2
吧务
level 14
select count()......
2016年01月18日 05点01分 4
level 1
update (select * from 糗百 where 数量 < 1)
2016年01月18日 07点01分 5
1