var
  str:string;
  a:string;
begin
  a:=ooo1;
  with query1 do
  begin
    Close;
    SQL.Add('select b from tablename where a=:a');
    parambyname('a').asstring:=a;
    prepare;
    open;
    first;
    while not eof do
    begin
      str:=Str+Feidlbyname('b').asstring;
      next;
    end;
  end;
end;

解决方案 »

  1.   

    to HZ_ZMD(牙神幻十郎) 我现在想寻找一种不用游标的方法
    to JonHua(玉龙) 你理解错了,我不是要那种效果,我想要得出来的结果成为一个大的SQL语句中的一个字段
      

  2.   

    我再说详细一点吧
    其实我有两个表:一个是TB1,一个是TB2
    TB1中有关键字段A,TB2中也有A,TB1中的一条A对应于TB2中的多条记录
    我现在就想得到以下的一个结果:
    TB1中的一条记录,但把TB2中对应的多条记录合并为一条成为一个数据集
      

  3.   

    用SQL语句实现String的相加太困难了,为什么不用程序开发语言来完成呢?
    先Select * from 表 Group By A
    然后设置一个temp
      temp:=adoQuery(0);
      i:=0;
      gStr(i):=adoQuery(1);
      aodQuery.movenext;
      while not aodquery.eof do
      if adoquery(0)=temp then
         gstr(i):=gStr(i) + adoQuery(1)
      else
      begin  
        i:i+1;
        temp=adoQuery(0);
        gStr(i)=adoQuery(1);
      end;
      

  4.   

    唉,大家怎么还不明白我的意思呀,我需要把得出的结果放在一个DBGRID中显示用程序没法呀~~~~~~~~~~
      

  5.   


      你的dbgrid用重画方法。。  把所得的记录重新画上去,试试看