请教大家一个问题,在分布式系统中,怎样用delphi2007中dbx4控件组实现   巢状数据表 Master/Detail的应用系统

解决方案 »

  1.   

    这个不是 dbx 的特别之处吧, delphi通用, 总体情况有几种
    query/table 作主表, 但 query 作子表的, 必须要求 param 的列表要完全相同, 是个很不好处理的现象, 主表如果有多条记录的, 似乎无法子表也跟主表 param 相同, 适用于主子表都只有一条记录的query/table 作主表, table 作子表的, table 的 mastersource 提定, 后 master fields 就可以作一个对应设置, 如果 table 作主表, 另要求相应的关联字段必须是 index 的成员回到第一种情况 query/table 作主表, query 子表, 此时如果就是有多行记录出现
    办法一: 可以另作一个 DSP 把 query 中的数据提供到一个 cds 后再作关联
    办法二: 在子表的 query 的 beforeopen 事件中补上条件 detailquery.ParamByName := 主表.FieldByName..., 最后要在主表的 AfterOpen 事件中去 close 子表, midas 此处明显不正确, 它没有去关闭子表
      

  2.   

    dbx4中的SQLDataSet没有MasterFields这个属性
    而      adodataset中有这个MasterFields这个属性
      分布系统中不知怎么利用dbx4的控件组 才能实现 巢状数据表 Master/Detail的应用系统向大家求教
      

  3.   

    sqldataset 我看了一下, 似乎只能当作 query 用, 从 BDE 用上来的一般选用 table && query
    从别处转来的人一般才选用 dataset相关
      

  4.   

        SQLDataSet只有向前浏览数据功能,因此它不能实现Master/Detail的应用系统,解决方案,加上tclientDataset和DSP控件或TSimpleClientDataset可以解决问题