数据修改增加后,按保存按钮。数据好象保存成功。可关机,再开机,打开表,刚才录入数据没有录入,客户反映数据丢失了。
我这里用缓存更新paradox,
 if not data.Database1.InTransaction then
    begin
       data.Database1.StartTransaction;
      try
        data.goodsqy.applyupdates;
        data.onhandqy.ApplyUpdates;
        data.onhandinitqy.ApplyUpdates;
        data.database1.Commit;
        self.BitBtn3.Visible:=true;      except
        Application.MessageBox('保存数据出错','提示',MB_ICONINFORMATION);
        data.goodsqy.CancelUpdates;
        data.onhandqy.CancelUpdates;
        data.onhandinitqy.CancelUpdates;
        data.Database1.Rollback;       raise ;
       exit;
       end;
保存后,也没有提示保存出错。数据在dbgrid中也看到。可关机,再开机,打开表,刚才录入数据没有录入。
有誰遇过同样的问题。这种情况是很少的。请问高手,这是什么故障现象。数据为何没有真正写入磁盘呢?
这种情况在什么时候能发生呢。可正常操作,也没有问题。不知什么原因,向客户怎么交待呢?

解决方案 »

  1.   

    没遇到过这种情况,因为从来不用applyupdates;
    你用insert or delete or update 语句操纵数据,然后execsql,应该是没有问题的。
      

  2.   

    用 applyupdates;事务管理多表更新,错误可以回滚。
    这种情况,是不是表被锁定,被独占访问。
      

  3.   

    我猜可能是出在事务管理上了!多半rollback了!
      

  4.   

    为什么rollback,没有提示出错。
      

  5.   

    楼主,很可以是paradox本身的问题。
    我以前碰到过类似情况,把表删了,再建一个。
    后来都不太敢用paradox了,都用sqlserver,简单的就用access
      

  6.   

    谢谢大家的解答,我想应该是在表在出错壮态,事务没有很好的执行。但不知真正原因在哪里?
    今天又遇到一个表索引坏了,程序打不开了,难到真如 Rubi 所说(写程序越来越没有意思了?)