请问如何分离TDataSetProvider封装的数据包中的Master和Detail数据,我不知道如何使用TClientDataSet的DataSetField来分离

解决方案 »

  1.   

    动态的,就是dataSetField来分离,用固定字段不好吗?
      

  2.   

    把Master/Detail关系做到客户程序上,就不必去分开了。
      

  3.   

    谢谢各位,我还是不明白。请耐心点:
    我在中间层,用两个TADODataSet,设置了他们的Master/Detail关系,用了两个
    TDataSetProvider分别与他们对应。
    在客户端,用两个ClientDataSet1(Master),ClientDataSet2(Detail),分别用DataSource1和DataSource2,分别设置RemoteServer、ProviderName,并且ClientDataSet2的MasterSource为DataSource1。 
    可程序运行的时候,Master部分正常,Detail部分没有数据?请问如何解决,各位大侠告诉我如何解决?
      

  4.   

    datasetprovider 有一个delta属性,它可以用来提取客户端返回的数值。它的封装结构就是把detail表当作一个字段处理。具体的方法,推荐你参看李维的《Delphi 5.x 多层分布式应用 系统篇》
      

  5.   

    你在中间层已经设置了Master/Detail关系,在客户端只要一个TClientDataSet对应主表TDataSetProvider就行了,不必在客户端再建立Master/Detail关系,对应主表的TClientDataSet会自动增加一个DataSet字段,当与主表连接的DBGrid显示时,点击DataSet字段,就会弹出Detail表。
      

  6.   

    maozefa,我是ZhongDe,非常感谢,我从你的帮助中着实学到了东西,可惜我在看到您的回复前,已经结了帖。没有办法在给你分了。