假设有一条这样的语句:select A.a,A.b from A where A.b in (select B.b from B where B.c =111)
A,B 分别为2 个表,请问怎么样在delphi 中写这条语句;使用query1.sql.add 的方式
最主要的问题是,怎么样在query1.sql.add ()中加入上面中的左右两个括号,
如果括号中的语句比较长,那么可能括号内的语句会不在同一个query1.sql.add()中,那么请问上面那左右两个括号又怎么办呢???

解决方案 »

  1.   

    qry.sql.add('select A.a,a.b from a where a.b in(select B.b from B where B.c=111)');
      

  2.   

    redfeizhang() 的方法可能可以,但先要重置query1
      

  3.   

    那么假如  括号内的语句不在同一个query1.sql.add()中,那么请问上面那左右两个括号又怎么办呢???例如 query1.sql.add ('(......');query1.sql.add ('......');
    query1.sql.add('......)');
    请问这样写行不行呢,我尝试过,好象不行
      

  4.   

    query1.sql.add ('......''+( +''...''+)+''');好象这样也可以的吧,试试吧,我也不太会。
      

  5.   

    用字符串吧,很简单的
    procedure TForm1.Button1Click(Sender: TObject);
       var Sql_Str:string;
    begin
       Sql_Str:='select a.a,a.b from a where a.b in(';
       Sql_Str:=Sql_Str+'select b.b from b where b.c=1)';
       adoquery1.SQL.Clear;
       adoquery1.SQL.add(Sql_Str);
       adoquery1.Open;
    end;