如果主表不保存,从表肯定不能保存。
如果主表保存了,而从表不保存也是不对的。不能只有出库单号,而没有具体的东西。
这样的话,我现在只能用普通Grid,但数据显示、保存等都需手工处理,好麻烦但如果用DBGrid,又会出现问题:万一主表保存了,然后退出,那可怎么办啊。
在显示一条主记录时,必须控制从表的Filter,可新增时从表的Filter怎么控制啊,也许主表的ID还没有确定下来。

解决方案 »

  1.   

    用dbgrid,grid显示跟主从表没多大关系,问题是主从表一起更新牵涉到事务.事务的处理方法比较多.关于ID的问题了解了事务的处理方式ID问题就可解决.接分.
      

  2.   

    我一般是只读的grid就用DBGrid,如果可输入就自己做,灵活度更大些。
      

  3.   

    主从表应该是同时保存,用事务控制,失败则全部回滚
    ///////////////////////////////
    这个很简单。但我的问题是,在主表没有保存之前,怎么控制从表的Filter,让DBGrid只显示新增的内容,而不显示以前的内容?如果从录入开始整个放在一个交易里,当用户不能及时保存提交时交易时间过长,也会占用很多资源。
      

  4.   

    你设置了主从关系,子有DBGRID肯定只会显示当前主表下子表内容,这个会有问题吗?
    有点奇怪
      

  5.   

    to: nxfbccu(虚无漂渺) 
    如果用SQLServer做后台,Table控件会提示莫名其妙的错误,比如不能处理定义为非空或者Identity的默认字段,所以我用TQuery。但TQuery我不知道怎么定义主从关系 :(
      

  6.   

    如主表masterquery datasource1,子表detailquery datasource2
    方法一:设置detailquery的datasource为datasource1
    同时在detailquery的Sql中写
    select * from detail where key=:key
    方法二:在masterquery的Afterscroll事件中写:
    with detailquery do
    begin
    close;
    sql.clear;
    sql.add('select * from detail where key='''+masterquery.fieldbyname('key').asstring+'''');
    open;end;
      

  7.   

    to : nxfbccu(虚无漂渺)
    用动态SQL确实能解决Filter解决不了的问题 :)