在服务程序端的RemoteDataModule上有两个 name 为qryMaster,qrymx 的TADOQuery控件,一个name为PublicDataSetProvider1的TDataSetProvider控件,TADOQuery控件已经与通过TADOConnection控件与数据相联, 现在服务端有一段程序如下:
procedure TBSDRPServer.GetData(const strQry: WideString;
  strQryDetail: OleVariant);
var
  i: Integer;
  strMx:string;
begin
 qryMx.Close;
 qryMx.DataSource := nil;
 qryMx.Fields.Clear;
 qryMx.SQL.Clear;
 PublicDataSetProvider1.DataSet:= nil;
 qryMaster.Close;
 qryMaster.SQL.Clear;
 qryMaster.Fields.Clear;
 with qryMaster do
  begin
    Close;
    SQL.Text := trim(strQry);
  end;
  strMx:=VarToStr(strQryDetail[i]);
  with qryMx do
  begin
      Close;
      SQL.Text := strMx;
      DataSource:=dsMain;
   end;
  PublicDataSetProvider1.DataSet := qryMaster;
end;现客户端有一name 为dxMain,dxMx 的TClientDataSet控件,dxMain的ProviderName
属性设为PublicDataSetProvider1,dxMain中有一TDataSetField字段,
dxMx的DataSetField 属性指向该字段,
现在客户端通过调用服务端的GetData的函数,参数为SQL语句,例如,
'SELECT GROUP1.GPDM,GROUP1.GPMC FROM GROUP1 ORDER BY GROUP1.GPDM ASC',
SELECT GPGG1.GPDM,GPGG1.GGDM FROM GPGG1  WHERE GPGG1.GPDM=:GPDM',
在客户端打开单据正常,但如果下次打开的单据调用的参数有变化时,如
'SELECT PEIMA.PMDM,PEIMA.PMMC,PEIMA.PMXZ,PEIMA.TZSY,PEIMA.BZ,PEIMA.SL FROM PEIMA ORDER BY PEIMA.PMDM ASC',
'SELECT PEIMAMX.PMDM,PEIMAMX.GG2DM,PEIMAMX.SL FROM PEIMAMX  WHERE PEIMAMX.PMDM=:PMDM'
此时程序会报qryMaster :Field 'GPDM'not found.我传的参数中根本没有GPDM呀,请教高手!