F
funlove_1975
Unregistered / Unconfirmed
GUEST, unregistred user!
我有五个表
A 客户名称 定单号 业务员 这个表为数据源表有二万条数据
B 业务员1 定单号
C 业务员2 定单号
D 业务员3 定单号
E 业务员4 定单号
F 业务员5 定单号 理论上业务员表可能还会多
目的,从A表中的定单号查出与每个业务员表中定单号相同的记录,送入DBGRID或者在A表的业务员字段中写入相应的标志。
我用两个ADOQUERY来一个表一个表的查询,实际是读取了20000*4=80000条数据,太慢也不科学。不知道正确的写法应该是什么样?
我的方法:
try
adoquery2.Close;
adoquery2.SQL.clear;
adoquery2.SQL.Add('select 定单号 from B);
adoquery2.Open;
adoquery2.First;
while not adoquery2.eof do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select 定单号,业务员 from A where 定单号=:定单号');
adoquery1.Parameters.ParamValues['定单号']:=adoquery2.FieldValues['定单号'];
adoquery1.Open;
if adoquery1.FieldValues['定单号]<>null then
begin
adoquery1.Edit;
adoquery1.FieldValues['业务员]:='B';
adoquery1.Post;
end;
adoquery2.Next;
end;
A 客户名称 定单号 业务员 这个表为数据源表有二万条数据
B 业务员1 定单号
C 业务员2 定单号
D 业务员3 定单号
E 业务员4 定单号
F 业务员5 定单号 理论上业务员表可能还会多
目的,从A表中的定单号查出与每个业务员表中定单号相同的记录,送入DBGRID或者在A表的业务员字段中写入相应的标志。
我用两个ADOQUERY来一个表一个表的查询,实际是读取了20000*4=80000条数据,太慢也不科学。不知道正确的写法应该是什么样?
我的方法:
try
adoquery2.Close;
adoquery2.SQL.clear;
adoquery2.SQL.Add('select 定单号 from B);
adoquery2.Open;
adoquery2.First;
while not adoquery2.eof do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select 定单号,业务员 from A where 定单号=:定单号');
adoquery1.Parameters.ParamValues['定单号']:=adoquery2.FieldValues['定单号'];
adoquery1.Open;
if adoquery1.FieldValues['定单号]<>null then
begin
adoquery1.Edit;
adoquery1.FieldValues['业务员]:='B';
adoquery1.Post;
end;
adoquery2.Next;
end;