我是想对主表保存时再保存从表,如果取消主表的添加操作,那么从表中添加的关联记录就不保存。
请问有什么好办法?用存储过程可以吗,存储过程该怎么做?
主表是adoquery ,从表是adotable。请指教,谢谢!

解决方案 »

  1.   

    有一个窗体form2专门是添加编辑记录的。
    如果想取消操作,就关闭窗体,
    form2.close;
    adoquery.cancel;
    form2.onclose:事件
     action:=cafree;
    还有个问题:比如主记录在form2修改,从记录都是在dbgrid里操作,dbgrid是自动post的。
    如果想要取消主记录的修改,那么自动post的从记录如何恢复修改前的状态?
    就是说该主记录对应3条从记录,我在修改时候又添加了一条从记录,在dbgrid里添加的,
    我取消的时候,应该回到原来对应的3条从记录啊。
    有什么好办法实现吗?
      

  2.   

    可以.存储过程中使用事务即可.然后客户端用TADOStoredProc调用.
      

  3.   

    例程:(SQL SERVER)
    BEGIN TRAN T1
    UPDATE table1 ...
    BEGIN TRAN M2 WITH MARK
    UPDATE table2 ...
    SELECT * from table1
    COMMIT TRAN M2
    UPDATE table3 ...
    COMMIT TRAN T1TADOStoredProc有一个ProcedureName属性,对应这个存储过程,然后调用ExecProc就可以