用一个Datasource与Dbgrid相连,对ADOQuery或 ADODataSet的sql或CommandText动态赋给select SQL语句。如用ADODataSet实现 if xz='table1' then begin ADODataSet1.active:=false; ADODataSet1.commandtext:='select * from table1'; ADODataSet1.active:=true; end else begin ADODataSet2.active:=false; ADODataSet2.commandtext:='select * from table1'; ADODataSet2.active:=true; end end;
你也可以用一个adoquery和一个datasource来实现,动态改变adoquery的sql值就可以了。
第二个问题,refresh不行的话,更新数据后关闭adoquery,然后再打开试试。
if xz='table1' then
begin
ADODataSet1.active:=false;
ADODataSet1.commandtext:='select * from table1';
ADODataSet1.active:=true;
end
else
begin
ADODataSet2.active:=false;
ADODataSet2.commandtext:='select * from table1';
ADODataSet2.active:=true;
end
end;