在多层里,怎样实现Master/Detail数据操作,是在中间层或是在客户端进行。用ADO+SQL2000?我照着李维那本MIDAS书所说做了,但在客户端的Datafield中没有adsDetail数据集。为什么啊

解决方案 »

  1.   

    在李威的书里是在中间层放SimpleObjectBroker
    来分解SQL,不知道楼主是否这样做的?
      

  2.   

    在2-1-6节所说明的方法中并没有使用SimpleObjectBroker啊。他只是说巢状数据啊,而且依照着李维所说,按他的方法用ADO是挺简单的啊。但在用第二个ClientDataSet时,在DataField里根本就没有adsDetail。
      

  3.   

    你要在第一個clientdataset中定義字段.
      

  4.   

    好象5以后的版本Delphi自己控制了些东西,
    过几天就有答案了,我也再等别人做这个。
      

  5.   

    怎样在第一个CLIENTDATASET里定义字段以及怎样建立联系?
      

  6.   

    要在客户端的clientdataset中import所有字段,然后才能看到那个级联字段
      

  7.   

    一、李维所说的是可行的。
    1、用远程数据模块中的ADO进行主从关联。
    2、adodataset_Main—Dsp_Main—Clientdataset_Main,此时Clientdataset_Main的字段中有个字段中是专门封装从表数据的字段。将Clientdataset_Detail的dataField的属性值设置为Clientdataset_Main封装从表数据的字段。
    3、结束。
    二、或
    1、在远程数据模块中的ADO进行主从不作关联,作为单独的两个表。
    2、在客户端数据模块中的clientDataSet的主从表进行关联,关联方法与ADO关联方法相同。
      

  8.   

    这个问题我已经解决了,感谢各位的相助。对了, 不知该如何操作才能把分加给你们。我还有一个问题,我的主表和从表的关键字关连是字段EmpName,在主表GRID中击了一个员工后,在从表中反映该员工的工资,如果一开始从表(工资表)里字段EmpName没有值,我新加记录后,怎样从主表字段empname里取得当前员工名字值,而不需要从表再输入一次。
      

  9.   

    感谢各位,我的问题已经解决了,对了,我不知道该如何给大家加分,该如何操作。另外还有一个问题是在DELPHI里有没有计算字段,也就是根据当前记录的某些字段值自动计算,且随用户输入的数值动态改变。
      

  10.   

    解决了也要说一下怎么解决的阿?谢了!分
    http://expert.csdn.net/Expert/topic/1617/1617486.xml?temp=6.740749E-03
      

  11.   

    在连接数据库成功之后,那个detail是以dataset类型的字段在clientdataset1的fielddefs中,必须在fields中加入这个字段,clientdataset2才能看到。刚刚试成功,各位可以试试!