出现EDBengineError : couldn't perfom this edit because another user changed the re

L

lynd

Unregistered / Unconfirmed
GUEST, unregistred user!
出现EDBengineError : couldn't perfom this edit because another user changed the record是什么错误?如何解决?(50分)<br />我用的table控件,先用locate找到特定记录,然后调用edit方法,修改完某个字段后post
一下就出现上述错误,而且并没有其他人修改记录,这是什么原因?如何解决呢?
 
因为你的更新key值有空的情况!~
如果你没有用updatesql控件的话你最好在dataset的newrecord的时候为每个字段赋上初值不让他为空
如;字段 a char(10),b char(10)
在新增的时候把可能为空的赋上值
fieldbyname('a').value:='';
fieldbyname('b').value:='';
因为null和''是不同的!null在修改记录的时候就定位不到该记录了!bde很傻!
为nullBDE就有可能出事哦!!

原则就是让所有可能出现null的字段都赋上初值~!

 
不用Table ,用Query組件
 
他是edit,只是修改某条记录的一些值而已
我觉得不存在字段为空的问题
是不是你哪里将表给锁掉了
 
用緩存方式提交!
 
正确答案:更新ODBC(2.1版就可以)
 
這是別人回答我的,建議你看看:

是bde的配置问题,Enable BCD设置为True就没有问题了。
ado默认的是enable bde。所以也可以说是sql server的限制,
oracle没有这个问题,不用bcd也可以。

至于Countn't perform the edit because ,原因是你的table或者query没有主关键字,
并且要把update mode 设置为keyonly

 
顶部