现在写的库存管理方面的程序,
比如一个入库操作,
新增和修改动作我在afterpost 里对现有库存进行更新。
删除动作则在before delete 里对库存进行更新。现在发现一个问题,用户每天会有上百笔的操作,会有一小部分的操作(4,5笔),没有更新库存!
代码没有问题,而我自己进行测试也都没有问题。真是搞不懂。
各位有没有遇到过类似的情况啊?不知道是不是adoconnection的属性我设得有问题?
commandtimeout    30
connectiontimeout 5
keepconnection   falseadoquery没有设缓存,直接更新。
数据库SQL server ,用户厂里用局域网连接。服务器win2003 server

解决方案 »

  1.   

    放到try except里面看看有没有反应?
      

  2.   

    再次up 一下,还有不太清楚的地方
    adoquery1 连的是入库明细表。
    用事务处理,是这样吗?
    ------->
      try
        ADOConnection1.BeginTrans;
        ADOquery1.Post ;
        (更新库存)...;
        ADOConnection1.CommitTrans;
      except
        ADOConnection1.RollBackTrans;
      end;
    -------
    但是我用dbgrid ,用户录完一笔后,鼠标点到其它记录后,就已经自动执行post 了,这里就没办法加代码控制了,该怎么办?
      

  3.   

    用SQL命令在事务中更新:
    IF NOT adoconnectino1.instrancation then
       adoconnection1.begintrans;
    //....execute your commandtry
      execsql;
      adoconnection1.committrans;except
      adoconnection1.rollbacktrans;end;
      

  4.   

    删除动作则在before delete 里对库存进行更新應該在afterDelete后觸發更新動作吧
      

  5.   

    如果用的sql server数据库为什么不用存储过程,在存储过程中使用事物处理,那样肯定没问题。