请问:
用ClientDataSet.DataRequest传递SQL参数到服务器端
服务器端用此参数进行查询,如何将服务器端AdoQuery查询返回的数据集传回给ClientDataSet?
我用的DataSetProvider的OnDataRequest事件
在这个事件中打开AdoQuery查询
就是不知道怎么将查询结果返回给客户端的ClientDataSet

解决方案 »

  1.   

    ClientDataSet与Query、ADOQuery、Table等等一样,都是DataSet另外你可以写自定义方法AppServer
      

  2.   

    DataSetProvider1.dataset = adoquery
    ClientDataSet.Providername = DataSetProvider1
    配置好属性后
    ////////////
    function GetDataSet(SQLCommand:string;DataSet:TClientDataSet):
            Integer;
    begin
      try
        adoconnection1.Connected:=false;
        adoconnection1.Connected:=true;
        clientdataset1.Active:=false;
        clientdataset1.CommandText:=SQLCommand;
        clientdataset1.Active:=true;
        DataSet.Data:=ClientDataSet1.Data;
        clientdataset1.Active:=false;
        result:=S_OK;
      except
        result:=S_False;
      end;
    end;
      

  3.   

    to 失踪的月亮谢谢function GetDataSet(SQLCommand:string;DataSet:TClientDataSet):
            Integer;
    begin
      try
        adoconnection1.Connected:=false;
        adoconnection1.Connected:=true;
        clientdataset1.Active:=false;
        clientdataset1.CommandText:=SQLCommand;
        clientdataset1.Active:=true;
        DataSet.Data:=ClientDataSet1.Data;
        clientdataset1.Active:=false;
        result:=S_OK;
      except
        result:=S_False;
      end;
    end;这段语句我有点困惑,是写在客户端?还是服务器端?
    客户端没有adoconnection
    服务器端没有clientdataset能说明白些吗?
      

  4.   

    在服务器中加入DataSetProvider1 并设置
    DataSetProvider1.dataset = adoqueryfunction OpenData(SQLSTR:string):OleVariant;
    begin
      with adoquery do
      begin
        close;
        SQL.Clear;
        SQL.Add(SQLSTR);
        try
          open;
          Result := DataSetProvider1.Data;
          close;
        except
          close;
        end;
      end;
    end;clientdataset.Data:=OpenData('select * from tblTest');