Row cannot be located for updating.(100分)

  • 主题发起人 主题发起人 zuidaeji
  • 开始时间 开始时间
Z

zuidaeji

Unregistered / Unconfirmed
GUEST, unregistred user!
出错提示:Row cannot be located for updating.
Some values may have been changed since it was last read.
环境:SQL SERVER2000 + delphi6 + ADO
目的:使用两个表,一个表为正常使用数据,想增加数据,为生成一个唯一序列号,使用
另一个单字段表,该单字段表只记录当前的序列号。然后多用户使用这个单字段号的数据
递增生成唯一序列号insert 到正常数据表中去。
1、已经使用了事务处理。2、不想使用sql server2000存储过程。

请教高手。

 
由于别的用户在此修改之前修改了序列号,以致修改时找不到对应记录
 
正常数据表中设主键了么?
确保不能有重复纪录才能执行。
 
>确保不能有重复纪录才能执行。
对,ado中有要求
 
主键我加了。但如果用户一多的话,还是要错。
 
to LGXing,
我那个单字段的表只是一行数据,只记录当前的序列号。我这个测试程序只是不停地在
insert ,并不修改记录。应该不会出现你讲的情况。
 
可以在写入数据库之前检查主表是否有相同数据或者将主键定义为自动编号ADO可以自动
判断是否有相同记录,如果有则自动重新写入新的编号
 
大家都认为这个出错提示是因为有重复的序列号的原因?
我查了一下数据库,发现虽然有出错,但序列号都是唯一的.
 
1.是否有用觸發器,可能是觸發器引起。
2.最好在表保存之后刷新一下。
3.表是否有損壞,重新建一個表結構一模一樣的表試試。
 
呵呵,是更新模式的問題!保存前更改一下就行了!
 
你用于产生唯一序列号的那个表最好另加一个唯一的主键,回为你每生成一次序列号都去修改
一次唯一序列号的表的值,在ADO中如你没有主键值就很容易出现你的错误,你用BDE,就不
会有错。
 
问题已经解决,请斑主结束问题。
 
来迟了,分分吧!
 
》》问题已经解决,请斑主结束问题。
干吗要版主?
 
>问题已经解决,请斑主结束问题。
给个结果吗!
 
后退
顶部