zhstr:='StData';
 zhstr:=zhstr+Edit1.Text;
  with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Declare @TableName VarChar(20)');
      SQL.Add('Set @TableName='+QuotedStr(zhstr));
      Sql.Add('exec(''Select *  From   ''+@TableName)');
      Open;
      i:=RecordCount;
      i:=i+1;
       SQL.Clear;
       SQL.Add('Declare @TableName  VarChar(20)');
      

解决方案 »

  1.   

    var
      sqlstr:string;
    begin
      sqlStr:='select * from '+tableName;
    end;
    要不你就直接写存储过程,你这样写太乱了,程序不利于阅读
      

  2.   

    sql := 'insert into '+ 表名变量 +'('+字段变量+')'+'values' + '(' + quotedstr(值变量) + ')';
      

  3.   

      SQL.Add('Declare @TableName VarChar(20)'); 
          SQL.Add('Set @TableName='+QuotedStr(zhstr)); 
          Sql.Add('exec(''Select *  From  ''+@TableName)'); 
    这种SQL无法执行,如果要执行类似动作,要么在产生SQL时,确定表名,或字段名,要么用动态SQL.