在主明细数据表连接好后,我想删除主表中的记录而不删除明细表中的记录,应该怎么做呢?

解决方案 »

  1.   

    如果你不处理的话,主表.delete只会删除主表的数据,从表的数据并不会删除,当然,由于主表已被删除,你无法从DBGrid里面看到从表的数据,但在数据库中仍然存在
      

  2.   

    主明细表的关联用手动方式处理,如果是用ADO,那么就在主表(TADOQuery)的AfterScroll中处理两表的关联关系。如:
    主表的SQL是SELECT * FROM MasterTable
    从表的SQL是SELECT * FROM DetailTable
    而主从表有一关联字段。那么主表的AfterScroll事件如下:
      adqDetail.Parameters[0].Value :=
        adqMaster.FieldByName(adqDetail.Parameters[0].Name).Value;
    并且在数据库,主表与从表不设置级联删除。那么,除非你在代码中做了级联删除的处理,那么当你删除主表的记录时,从表相关数据不会被删除。