var
un:string;
if aqtemp.Active then
   begin
   aqtemp.First ;
   while not aqtemp.Eof do
   begin
   aqzb.SQL.Add('union');
   aqzb.SQL.Add('select * from gyd where f_cpbh like ''%'+aqtemp.FieldValues['f_cpbh']+'%'' order by f_zdrq desc');
   aqtemp.Next;
   end;
   delete(un,1,5 );
   showmessage(un );
   aqzb.Open;
   end;
上面这样写提示错误,union附近有语法错误,我知道是要把变量un在赋值回去给aqzb,但是就是写的不对,请高手指点,谢谢!

解决方案 »

  1.   

    SQL語句不正確檢查以下代碼,我晚上幫你看看....
    aqzb.SQL.Add('union');
      aqzb.SQL.Add('select * from gyd where f_cpbh like ''%'+aqtemp.FieldValues['f_cpbh']+'%'' order by f_zdrq desc');
      

  2.   

    你这样写有问题了, 比如有两条记录最终你生成的SQL是
    union select ...
    union select ...事实上第一个union是不用的,加上去就出错了...
      

  3.   

    union select ...
    union select ...事实上第一个union是不用的,加上去就出错了...
    delete(un,1,5 );
    这个就是去掉最前面的union啊,完了把un返回的结果在返回给aqzb,我问的是这个意思
      

  4.   

    union使用在两个集合之间,比如 select a from A union select b from B
    你现在最开始单独使用了union没必要也是不对的
      

  5.   

    我这是一个循环,如果单独写几个并的句子是那样,这个已经可以通过了,我现在想知道的是怎么把un的值返回赋值给aqzb,大家能明白我的意思吗?