请教高手,D6+ADO+SQL SERVER中<无法更新定位行,一些值可能已在最后一次读取后已更改>该如何解决?

dearfws 2002-05-27 09:22:33
请教高手,D6+ADO+SQL SERVER,当前编辑的表如果在读取后别人又做了修改,在更新时会出现<无法更新定位行,一些值可能已在最后一次读取后已更改>的错误,该如何解决?
...全文
329 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangzongqiang 2002-05-28
  • 打赏
  • 举报
回复
用事务处理.
try
adoconnection1.BeginTrans

.....

adodataset1.post;
adoconnection1.CommitTrans ;
except;
adoconnection1.RollbackTrans ;
end;
manboo 2002-05-27
  • 打赏
  • 举报
回复
使用事物锁定就行了,其他的一些办法很好玩,我在软件工程板看的哦,
设置一个Version如果有修改则version+1,如果你最先读入的Version 和现在Version 不同则可以确定你的修改不能被提交呵呵!这个办法好玩,主要好处是资源,锁定的少!
leon2k 2002-05-27
  • 打赏
  • 举报
回复
>>>lwk_hlj(阿凯)
我觉得应该这样才行:
AdoConnection.BeginTrans
Try
//更改数据
AdoConnection.CommitTrans;
Except
AdoConnection.RollbackTrans;
End;

liuziran 2002-05-27
  • 打赏
  • 举报
回复
索引去掉唯一值
lwk_hlj 2002-05-27
  • 打赏
  • 举报
回复
用事务处理!!!!
李维的书写得很明白
try
adoconnection1.BeginTrans
adodataset1.post;
adoconnection1.CommitTrans ;
except;
adoconnection1.RollbackTrans ;
end;
shindynj 2002-05-27
  • 打赏
  • 举报
回复
Transaction!

同意zyj320621(小朱)、gmc007(江西的佬表) !
guguda 2002-05-27
  • 打赏
  • 举报
回复
我也出现过这样的问题,GZ
dippa 2002-05-27
  • 打赏
  • 举报
回复
用事务!!
gmc007 2002-05-27
  • 打赏
  • 举报
回复
agree with: zyj320621(小朱)
星之瀚海 2002-05-27
  • 打赏
  • 举报
回复
你在其中是不是有些字段和别的表中的值有关联,如果有,
请检查是不是两个字段的类型或长度不相同,这往往会造成
你所说的这种现象。
  • 打赏
  • 举报
回复
这一种情况 请你用事务处理
outer2000 2002-05-27
  • 打赏
  • 举报
回复
需要重新关闭,打开一次。
8341 2002-05-27
  • 打赏
  • 举报
回复
这个问题发生在插入记录时,不小心移动了记录位置,此时记录已POST,然后再修改,就会产生这个错误。
我是在AFTERPOST事件里,REQUERY一下。
zhaohun 2002-05-27
  • 打赏
  • 举报
回复
我也遇到过,但应该在该表设置主键,因为没有主键 在新增记录后 再修改该记录就会出现“无法定位”的错误提示。一般将表的ID字段设为主键

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧