我有两个query, 一个叫qryMaster,一个叫qryDetail。其中qryDetail中的Sql查询条件要用到qryMaster中的查询结果。qryMaster的查询为select gys_bh from gys。qryDetail的查询语句中第2个参数为qryMaster的gys_bh字段,比如'select * from rkd where ycl_bh =:var0 and ck_bh = :var1 and gys_bh := var2',怎么让qryMaster中的查询结果导入到qryDetail的Var2中去。我已经设置qryDetail的DataSource->dsMaster->qryMaster了。多谢了。

解决方案 »

  1.   

    不一定要把QryDetail 的 DataSource->DsMaster->QryMaster
    可以直接的调用QryMaster的查询结果~
       Var2:=QsMaster.firleValues[''];
      

  2.   

    ado1.Close;
    ado1.SQL.Text := 'select gys_bh from gys';
    ado1.Open;
    ado2.Close;
    ado2.SQL.Text := 'select * from rkd where ycl_bh = :var0 and ck_bh = :var1 and gys = :var2';
    ado2.Parameters[0].Value := ...
    ado2.Parameters[1].value := ...
    ado2.parameters[2].Value := ado1.FieldByName('gys_bh').AsString;
    ado1.Open;
    我的方法是不是很麻烦,真苦恼。
      

  3.   

    ado1.Close;
    ado1.SQL.Text := 'select gys_bh from gys';
    ado1.Open;
    ado2.Close;
    ado2.SQL.Text := 'select * from rkd where ycl_bh = :var0 and ck_bh = :var1 and gys = :var2';
    ado2.Parameters[0].Value := ...
    ado2.Parameters[1].value := ...
    ado2.parameters[2].Value := ado1.FieldByName('gys_bh').AsString;
    ado2.Open;
    我的方法是不是很麻烦,真苦恼。
      

  4.   

    with qryMaster do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select gys_bh as gys_bh from gys;');
      Open;
    end;with fmAllProviderNonstorageMaterialReportShow.qryDetail do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from rkd where ycl_bh = :var0 and ck_bh = :var1 and gys = :gys_bh');
      Parameters[0].Value := ...
      Parameters[0].Value := ...
      Open;
    end;然后设置qryDetail的DataSource->dsMaster->qryMaster行不行?