query.sql.add(select * from);
query.sql.add(表名变量);
OK!。

解决方案 »

  1.   

    begin
       query1.close;
       query1.sql:='select * from '''+edit1.text'''';
       query1.open;
    end;
      

  2.   

    对不起,我刚写错了。begin
       query1.close;
       query1.sql:='select * from '+edit1.text;
       query1.open;
    end;这样就可以了。
      

  3.   

    在SQL语句里,表名和字段名,还有SQL命令和函数都是不能用参数的。如果这些有变化,只能象楼上三位一样每次都重新生成SQL语句。
    这是因为,之所以SQL中可以用参数,是为了让DBMS先把SQL语句编译,以便于用不同的数据多次运行。而数据的变化只会影响编译结果中数据本身的内容。而表名、字段名等对编译的影响很大,在不知道它们时,DBMS无法确定数据结构、数据类型、是否用索引等内容,没有办法编译。