Query1.SQL 
SELECT * FROM :XXQuery1.Close;
Query1.ParamByName('XX').AsString:='tbcdsj';
Query1.Open;数据库执行语句是
select * from 'tbcdsj'
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'tbcdsj' 附近有语法错误。多了 '' 怎么去掉哦正确的应该是select * from tbcdsj

解决方案 »

  1.   

    据我所知 表名不能直接这么用绑定变量
    好像要 Exec..什么的 忘记了不如直接把表名做变量用
    var
     t_name : String;
    ...
     t_name := 'tbcdsj' 
     SQL.Text := 'select * from ' + t_name; 
      

  2.   

    Query1.sql.text:='select * from :XX';Query1.Close;
    Query1.ParamByName('XX').AsString:='tbcdsj';
    Query1.Open;
      

  3.   

    使用Query1.ParamByName('XX').AsString
    传进去的参数会被加'', 因此不会被认为是表名的
      

  4.   

    用format连接吧format('SELECT * FROM %s',['tbcdsj'])
      

  5.   


    'select * from '+ XX这样行不行?
      

  6.   


    可以
    format('SELECT * FROM %s',['tbcdsj'])或写成一个过程procedure showrecord (table:stirng);
    begin
      with query do
      begin 
        sql.clear;
        sql.add('select * from '+table);
        open;
      end;
    end;