有一条SQL:
Select * from Users a,Groups b where a.ID = b.ID
执行后有50万条记录调入
然后又加了一个新用户,又要重新再调一次,
这样速度会很慢,有没有办法更快一些?
条件:
一次必须调出所有数据。
Select * from Users a,Groups b where a.ID = b.ID
执行后有50万条记录调入
然后又加了一个新用户,又要重新再调一次,
这样速度会很慢,有没有办法更快一些?
条件:
一次必须调出所有数据。
只是在新加一个User的情况下才会重新执行
Select * from Users a,Groups b where a.ID = b.ID 调出所有数据,主要是在这些数据里查找做计算,如果发现找不到的用户,则加一个,然后再做其它的工作。
这段是不连数据库的,如果要增加一个用户,则刚才数据不包含这个用户的信息,就需要再执行
Select * from Users a,Groups b where a.ID = b.ID 调出所有数据。
每次加一个用户都要重新调入一次所有数据,显然是不合理的,有没有更好的办法???
ADOQuery1.CacheSize := 90000000;
ADOQuery1.SQL.Text := ' Select * from Users a,Groups b where a.ID = b.ID ';
//全部取出数据
ADOQuery1.Open;
ADOQuery1.Connection := nil;
//得到新找到所有数据时,执行下面的语句
ADOQuery2.Close;
ADOQuery2.SQL.Text:='Select * from Users a,Groups b where a.ID = b.ID and a.ID='+Edit1.Text;
ADOQuery2.Open;
if ADOQuery2.RecordCount=1 then
begin
ADOQuery1.Insert;
//把 ADOQuery2中的值,插入到 ADOQuery1中
ADOQuery1.Post;
end;
ID 值是自动增长的,不允许插入
ADOQuery1.Fields[0].ReadOnly:=False;这样处理,ADOQuery1只是用来在客户端显示数据,并不能数据进行存储