select 变量 from 变量 adoquery1.sql.text:='select '+s1+' from '+s2;
怎样都错。。求高手指点~~

解决方案 »

  1.   

    var
    s1,s2 :widestring;
    begin
      s1 := 'Field1,Field2,Field3';
      s2 := 'TableName';
      AdoQuery1.Close;
      AdoQuery1.SQL.Add('select ' + s1 + ' from ' + s2 ; //注意select后留空格,from 前后加空格。
      AdoQuery1.Open;
    ...
    end;
      

  2.   

    上面少了一个“)"
    var
    s1,s2 :widestring;
    begin
      s1 := 'Field1,Field2,Field3';
      s2 := 'TableName';
      AdoQuery1.Close;
      AdoQuery1.SQL.Add('select ' + s1 + ' from ' + s2); //注意select后留空格,from 前后加空格。
      AdoQuery1.Open;
    ...
    end;
      

  3.   

    var
    s1,s2 :widestring;
    begin
      s1 := 'Field1,Field2,Field3';
      s2 := 'TableName';
      AdoQuery1.Close;
      AdoQuery1.Clear;//加这一句清除原可能有的SQL语句。
      AdoQuery1.SQL.Add('select ' + s1 + ' from ' + s2); //注意select后留空格,from 前后加空格。
      AdoQuery1.Open;
    ...
    end;
      

  4.   

                   s1:=adoquery2.fieldbyname('tablename').Asstring;
                   s2:=adoquery2.fieldbyname('id').Asstring;
                 
                    adoquery3.close;
                   adoquery3.SQL.Add('select distinct '+ s2+' from '+ s1);
                     adoquery3.open;
               运行出来还是错。。s:=adoquery3.fieldbyname(s2).Asstring;   说是找不到这个列啊 
      

  5.   

    这句s:=adoquery3.fieldbyname(s2).Asstring这样写肯定不行,可以改成 S := AdoQuery3.Fields[0].Value; //根据字段顺序确定[]中的值。
      

  6.   

    var
      sqlstr,Fn,Tn: string;
    begin
      Fn := 'Field1,Field2';
      Tn := '数据库表'
      sqlstr := 'SELECT' + ' ' + Fn + ' ' + 
                  'FROM' + ' ' +  Tn;
    end;