你想实现的方案,我暂时没有实现
不过,你可以这样实现:
clientdataset.close;
clientdatasetcommandtext :='select * from '+strtoint(Edtparam.text)+''''+查询参数 +'''';
clientdataset.open;
这样做,比用参数灵活.
或者
在中间层写远程方法,在客户端调用,
在下载数据之前先设定要查询的表
远程方法1:settablename(tablename:widestring);
begin
command:='';
adoquery1.close;
adoquery1.sql.clear;
command:='select * from '+tablename;//command:私有变量
end;
客户端查询时设置查询参数,然后调用
远程方法2:settquery(query1,query2,...:widestring);
begin
adoquery1.close;
command:=comand+''''+query1+''''+...;
adoqury1.open;
end;
之后客户端clientdataset1.close;clientdataset.open//客户端重新取得数据
当要改变查询的表时,只需再调用远程方法1,重新设置表名.
远程方法:在多层数据库中,客户端要调用中间层tlb文件中定义的函数/过程,客户端通过
这些方法向中间层传送处理的数据包.