请问
 adoquery1.SQL.Add();中
 添加的sql语句有无长度限制吗?支不支持嵌套
 我要写的sql很长,还关联了好几个表,该如何处理啊?先谢喽
select a.f_rq,a.flbm,a.flmc,sum(a.f_xsje)/10000 xsje,sum(a.f_sxxsje)/10000 sxxsje,sum(a.f_xsbs) xsbs,sum(a.f_xsje)/sum(a.f_xsbs) kdj
from (
select a.*,b.*,c.f_bmmc from (select * from tb200608_jsjysj where f_rq='20060822') a,
(select a.f_bmflbm flbm,a.f_dzbm bmbm,b.f_bmflmc flmc from tbbmfldz a,tbbmflda b where a.f_bmflbm=b.f_bmflbm and b.f_jb=2 and left(b.f_bmflbm,2)=00) b,
tbbmda c where a.f_bmbm=b.bmbm and a.f_bmbm=c.f_bmbm ) a group by a.f_rq,a.flbm,a.flmc

解决方案 »

  1.   

    如果太长了可以多次Add,别忘了最先clear
      

  2.   

    直接用一个richEdit 
    把sql放在上面
    sql.clear;
    sql.add(self.richEdit1.text);
      

  3.   

    其实不要用clear也可以,比如
    qry.close;
    qry.sql.text := '...';///不是用add,直接用 :=的话就可以不用clear
    qry.open;
      

  4.   

    Var
      Sqlstr:string;
    begin
      With Adoquery1 do
      begin
        Close;
        Clear;
        Sqlstr := 'SELECT ... ';  // 将SQL语句先赋值给一个字符串变量,再传入
        SqlStr := Sqlstr + ' '+ ' .. ';
            ...
        Sql.Add(Sqlstr);
        Open;
      end;