ADOQuery1的列集合怎么表示,像adoquery1.fieldbyname('a').asstring 表示一个字段,要一个集合呢
目的要实现下面的IN:fdm.zfpz2.Close ;
fdm.zfpz2.SQL.Clear ;
fdm.zfpz2.SQL.Add('select * from uf_gkzzjfmx where sum_bill in '''+fdm.thpzshow.FieldByName('sum_bill').AsString +''' ');
fdm.zfpz2.Open ;

解决方案 »

  1.   

    for i := 0 to adoquery1.fields.count-1 do
    begin 
      showmessage(adoquery1.fields[i].value);
    end;
      

  2.   

    设置字符串变量:str.
    然后循环数据集
    str:=str+','+fdm.thpzshow.FieldByName('sum_bill').AsString;然后改为select ..  in str) 就可以了(要注意str的第一个',',自己测试一下把)
      

  3.   

    in '''+fdm.thpzshow.FieldByName('sum_bill').AsString +''' ');
    把上边的 in条件改成一个sql查询语句
    in +select sum_bill from table where 条件 ');
      

  4.   

    这样就可以满足uf_gkzzjfmx 中的sum_bill 在select sum_bill from table2这个集合中
    select * from uf_gkzzjfmx where sum_bill in (select sum_bill from table2)
      

  5.   

    fdm.thpzshow.First;for i := 0  to fdm.thpzshow.RecordCount - 1 do
       begin
       mx:=mx+','+''''''+fdm.thpzshow.FieldByName('sum_bill').AsString+'''''' ;
       fdm.thpzshow.Next ;
      end;
     showmessage(mx);
    fdm.zfpz2.Close ;
    fdm.zfpz2.SQL.Clear ;
    fdm.zfpz2.SQL.Add('select * from uf_gkzzjfmx where sum_bill in  ('''+mx+''') ');
    fdm.zfpz2.Open ;showmessage 得出的值是 ''pay200401-0019'', ''pay200401-0020'',''pay200401-0021''select * from uf_gkzzjfmx where sum_bill in  ('''+mx+''')  无效,没有返回值呀,晕~
      

  6.   

    var mx:string;
       i: Integer;
    begin
    self.DataSource1.DataSet :=fdm.thpzshow ;
    fdm.thpzshow.Close ;
    fdm.thpzshow.Parameters[1].Value :=self.DBDateTimeEditEh1.Text;
    fdm.thpzshow.Parameters[2].Value :=self.ComboBox1.Text;
    fdm.thpzshow.Parameters[3].Value :=self.DBDateTimeEditEh2.Text;
    fdm.thpzshow.Open ;
    Label3.Caption:=self.DBGridEh1.Columns[12].Footers[0].SumValue;mx:=''''''+fdm.thpzshow.FieldByName('sum_bill').AsString+'''''';
    fdm.thpzshow.First;for i := 0  to fdm.thpzshow.RecordCount - 1 do
       begin
       mx:=mx+','+''''''+fdm.thpzshow.FieldByName('sum_bill').AsString+'''''' ;
       fdm.thpzshow.Next ;
      end; showmessage(mx);
    fdm.zfpz2.Close ;
    fdm.zfpz2.SQL.Clear ;
    fdm.zfpz2.SQL.Add('select * from uf_gkzzjfmx where sum_bill in  ('''+mx+''') ');
    fdm.zfpz2.Open ;{fdm.zfpz2.Close ;
    fdm.zfpz2.SQL.Clear ;
    fdm.zfpz2.SQL.Add('select * from uf_gkzzjfmx where sum_bill in  (''pay200401-0019'', ''pay200401-0020'',''pay200401-0021'') ');
    fdm.zfpz2.Open ;   }end;