SQL2000 能不能去查询一未知的表?表名时由差数传递的?????
如:Close;
SQL.Clear;
SQL.ADD('select * from (:TableName)');
Parameters.ParamByName('TableName').Value := '学生';
Open;

解决方案 »

  1.   

    如果'学生'表不存在,肯定会出错,但这样就行了,注意程序脱离调试环境就不会出错了
    Close;
    SQL.Clear;
    SQL.ADD('select * from (:TableName)');
    Parameters.ParamByName('TableName').Value := '学生';
    try
      Open;
    except
      shomessage('表不存在');
      exit;
    end;
    shomessage('表存在');
      

  2.   

    这样写是最可靠的:Close;
    SQL.Clear;
    SQL.ADD('select * from '+ edit1.text);//edit1.text中为表名
    //注意,如果表名是汉字要加""号
    //SQL.ADD('select * from '+ '"'+edit1.text+'"');
    Open;
      

  3.   

    Edit1.Text前最好加个去空格的函数吧。
    Trim(Edit1.Text)。
      

  4.   

    var
      SqlStr:String;
    begin
      SqlStr:='select * from '+TableName+'';
      with qry do
      begin
        close;
        SQL.Clear;
        SQL.Add(SqlStr);
        Open;
      end;
    end;
      

  5.   

    这样就随你怎么给tablename赋值啦,只要有这个表名!