主从表(表单),我希望能多人同时操作同一个表单,也就是以最后保存表单的数据为准。我看了很多软件,都好像有这个问题,同一表单,A和B同时操作,A保存后,B再保存就会出错,提示:"缺少更新或刷新的键列信息" (强调一下:我这边的程序必须要满足这种业务规则,是以最后保存表单的数据为准。)
语句如下:
    try    
    AdoqueryMaster.Connection.BeginTrans; 
    AdoqueryDetail.Post;//先保存从表
    AdoqueryDetail.UpdateBatch();
    AdoqueryMaster.post;
    AdoqueryMaster.Connection.CommitTrans; 
    except
       AdoqueryMaster.Connection.CommitTrans; 
       showmessage('保存失败');
    end;

解决方案 »

  1.   

    你不如试一下AB都Post之后再updatebatch
      

  2.   

    呵呵,用ADO就没有什么好的办法了。要是BDE就可通过更改UpdateMode可惜在ADO里面没有相应功能的属性。(我是没有找到,不知道哪位高手知道!)楼主可以在错误的时候把现有更改的信息记录下来,然后重新OPEN那条记录再EDIT后提交应该就可以了。
      

  3.   

    我们碰到了同样的问题,请看贴子
    http://community.csdn.net/Expert/topic/3806/3806908.xml?temp=8.170718E-02
    操作的方法不一样,原因是一样的.希望能够共同解决,
    我看过利瓦伊写的那本ADO_MTS_COM你给个邮箱
    我把ADO这部分发过去给你看看.里面有提到这个问题,意思是,把这种(你的贴子)错误,当作是一种安全的处理,具体请你看一下正文.