Sql Server数据更新问题(200分)

  • 主题发起人 主题发起人 好人
  • 开始时间 开始时间

好人

Unregistered / Unconfirmed
GUEST, unregistred user!
我向Sql server重复写数据(同一记录)时,系统报错
"Couldn't perform the edit because another uer chednged the record."
我不知怎样通知系统我已将数据读回并再次进行合法更新!
 
给你的表加上唯一的主KEY, 有可能是你更动了你的表的主KEY
 
你是怎么写的?如果是Table的话,有没有POST。
或者把你的代码贴出来。
 
你是不是要cancel第一次对table的修改,否则纪录处于被lcok的状态
 
1.不要对表直接操作,而用QUERY或STOREDPROC;因为QUERY是对某个事务而言的,
并不物理地修改表,只有对这个事务提交时才去物理地更新表内容;
2.建议操作TABLE/QUERY/STOREDPROC时加入一个自定义的DATABASE和SESSION,
而不使用缺省的;需要更新数据时其实与T/Q/S无关了,只需更新整个库.
 
如果没有主KEY 的话,有可能在你打开表后,别的用户插入或修改了记录
而你还处于浏览编辑状态
当你修改完记录去POST时,由于没有主KEY,也就是说有可能找不到你要
保存的目的记录。
另一可能是你第一次编辑后修改该记录,此时启动了一个事务,而你没有
结束该事务就又去更改该记录,此时待更新记录都在SERVER内存里,碰巧
没有KEY或KEY 字段被你刚才修改了的话,自然找不到记录了,就会发生你
所说的错误
 
为了试验多人同时修改同一条记录,曾经试过,先有一人定位到此记录,修改一些字
段,但不要post;在另一台机器上做同样的操作,先post,没问题.这时第一台机器要
post时,就会产生此错.估计是post的问题.

 
好人没有坏人好:)
请接受答案或继续讨论
 

这种问题会经常出现,如果你喜欢使用Table或Query的Edit,而后去Post
的话!彻底解决的方法是抛弃这种使用习惯,全部用Sql命令来修改、增加、
删除记录(Update,insert,delete),这样不但会快而且保证不出怪问题!

 
多人接受答案了。
 
后退
顶部