我做了三层结构,在一个formShow事件中我用clientdataset3把一个数据集打开,他的状态是浏览,我设定在bitbtnclick事件中把它更改为:edit状态,把数据库中的一个字段附新值,但是,applyUPdates(0)时,数据库中的该字段并未更新。提示错误是‘Record not found or changed by other user’,怎么办啊?

解决方案 »

  1.   

    建议自己在中间层写代码控制更新!稳定和灵活!虽然麻烦了点! 使用那个AppleUpdates!哈哈!你慢慢享受啦! $-$
      

  2.   

    这个问题我也遇见过,是数据库字段的原因,你可以把字段的类型换一下,然后再改回原来的类型就可以了,这个是BDE的一个BUG
      

  3.   

    我也不推荐用applyUPdates来更新数据,我的做法都是中间层定义一个方法,数据层可能会是一个存储过程之类的。
      

  4.   

    哦,我现在bitbtn中把数据集重新打开了一下,只是返回了主键和更新的字段,把主键和要更新的字段重新赋值,又applyUpdates(0)了一下,结果就能更新上去了。
    我在其它的模块中调用了clientdataset3,但是并没有触发其它模块啊。这是为什么啊?难道是向 niuyongzljtoo老兄说的是borland的bug吗?
    在中间层写方法,也是好办法,但是我这个程序已经快做完了,并且,在几天前没有问题的,平常也没问题,昨天我检查的时候还好好的,今天就不行了,这个程序还没有发布啊。再说,如果几个客户端同时调用同一个clientdataset3,我觉得不应该出问题啊,否则,多客户端程序不是就不能用了吗。