我用TQuery来设计一对多表的程序,更新时,总是报"table is read only",这是什么原因?具体情况如下: 
  1.我是设计一个销售单,主表用来记录当天产生的销售总额与销售总数及日期等,明细表则是记录每项产品的销售单价和数量,再汇总到主表中.
  2.我是用的两个TQuery,TUpdataSQL,TDataSource分别指向主表与明细表,新增两个按钮用来更新数据和取消数据.更新数据事件程序是  
  qySellMaster.ApplyUpdates;主表更新
  qySellDetail.ApplyUpdates;明细表更新
  qySellMaster.CommitUpdates;
  qySellDetail.CommitUpdates; 
  但是就是不成功?原因在哪?

解决方案 »

  1.   

    我的操作是,在主表的TUpdataSQL中,双击这个组件,有option这个选项中先选TableName中的SellMaster这个表, 再单击Get Table Fields按钮,最后单击Generate SQL按钮,产生MOdify,Insert,Delete等. 在明细表中也是一样.还有在Query中的UpdateObject我分别加上了这两个TupdataSQL.
      

  2.   

    一对多表的情况,query返回的数据集肯定是只读的,只不过你不是用了TUpdataSQL吗,为什么还要用query来更新?
      

  3.   

    但是我加TupdataSQL,而且Tquery的CachedUpdates属性我也改为True,应该不是这里的问题!