第一次查询的时候,是可以查询得出来的,第二次按“查询”,会报这个错误Duplicate field name 'F_sampleid'.出错在这段代码, FieldDefs.update;
for i:=0 to FieldDefs.Count-1 do
begin
FieldDefs.Items[i].CreateField(adoquery1);
end;
请问应该怎么办呢??
with adoquery1 do
begin
close;
SQL.Clear;
if not (s ='') then
begin
SQL.Add('select * from rwfp where ' );
SQL.Add( s +'order by isnull(f_Urgent,6),f_todate desc');
end
else
begin
SQL.Add('select * from rwfp ');
end;
FieldDefs.update;
for i:=0 to FieldDefs.Count-1 do
begin
FieldDefs.Items[i].CreateField(adoquery1);
end; field1:=TstringField.Create(adoquery1);
with field1 do
begin
FieldName:='xm';
DataSet:=adoquery1;
DisplayLabel:='项目';
FieldKind:=fklookup;
end; with adoquery2 do
begin
Close;
SQL.Add('select id,xmmc from a_devolve_xm a where exists(select 1 from a_gr_rwfp where xmid=a.id)');
Open;
end; with field1 do
begin
KeyFields:='xmid';
LookupDataSet:=adoquery2;
LookupCache:=true;
LookupKeyFields:='id';
LookupResultField:='xmmc';
end ;
end;fielddefs动态创建
for i:=0 to FieldDefs.Count-1 do
begin
FieldDefs.Items[i].CreateField(adoquery1);
end;
请问应该怎么办呢??
with adoquery1 do
begin
close;
SQL.Clear;
if not (s ='') then
begin
SQL.Add('select * from rwfp where ' );
SQL.Add( s +'order by isnull(f_Urgent,6),f_todate desc');
end
else
begin
SQL.Add('select * from rwfp ');
end;
FieldDefs.update;
for i:=0 to FieldDefs.Count-1 do
begin
FieldDefs.Items[i].CreateField(adoquery1);
end; field1:=TstringField.Create(adoquery1);
with field1 do
begin
FieldName:='xm';
DataSet:=adoquery1;
DisplayLabel:='项目';
FieldKind:=fklookup;
end; with adoquery2 do
begin
Close;
SQL.Add('select id,xmmc from a_devolve_xm a where exists(select 1 from a_gr_rwfp where xmid=a.id)');
Open;
end; with field1 do
begin
KeyFields:='xmid';
LookupDataSet:=adoquery2;
LookupCache:=true;
LookupKeyFields:='id';
LookupResultField:='xmmc';
end ;
end;fielddefs动态创建
begin
close;
SQL.Clear;
if not (s ='') then
begin
SQL.Add('select * from rwfp where ' );
SQL.Add( s +'order by isnull(f_Urgent,6),f_todate desc');
end
else
begin
SQL.Add('select * from rwfp ');
end;
FieldDefs.update;
ADOQuery1.FieldDefs.Clear;
for i:=0 to FieldDefs.Count-1 do
begin
FieldDefs.Items[i].CreateField(adoquery1);
end;