要Cds.Close后, 重新在取一次。

解决方案 »

  1.   

    不行啊
    中间层的方法:
    function TR9Test.PQueryGroupSub(const AGpID: WideString): OleVariant;
    var
      szSQL:string;
      data: OleVariant;
    begin  if Agpid='' then
      begin
        szSQL:='select * from Sys_Group where Pgpid is null';
      end else
      begin
        szSQL:='select * from Sys_Group where Pgpid='+Agpid;
      end;
      qryczy.Close;
      qryczy.SQL.Add(szSQL);
      try
        qryczy.open;
      except
        qryczy.close;
       // result:='查询失败!';
        exit;
      end;
      data :=dspCzy.Data;
      Result := data;end;客户端代码:
    procedure TForm1.werw1Click(Sender: TObject);
    begin
         sck.Open;
         ClientDataSet1.data := sck.AppServer.PQueryGroupSub('');
    end;procedure TForm1.werwe1Click(Sender: TObject);
    begin
         ClientDataSet1.Close;
         ClientDataSet1.Data :=  sck.AppServer.PQueryGroupSub('0');end;
      

  2.   

    qryczy.SQL有没有清空?
    在Add SQL前先这样试试
    qryczy.SQL.Clear;
      

  3.   

    对,可能还是在执行你前一个sql