在加300分,请指教,ADO提示错误的解决办法。(300分)

  • 主题发起人 主题发起人 prosky
  • 开始时间 开始时间
P

prosky

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Ado 联结Access数据库,在添加、删除、修改记录时经常出现错误:
“the Specified row could not be located for updating:Some values may hanve been changed since it was last read”
请问如何避免这类问题的发生?

 
下载一本李维的书吧(Delphi 5.X ADO_MTS_COM+高级程序设计篇),
看了后你就知道怎么做的了:)
 
安装Delphi5的一号补丁,问题将不再出现!

给你个序列号:
123-456-7890
69x4-91x0

补丁吗?还是自己去下吧!!!
 
ADOExpress组件已经出了两个补丁,第一个可在<程序员大本营2000 荟萃版>中找到,有15M左右。
第二个我是在Borland主页上找到的,大约是1.6M左右。SN都是ski-hd3-c139 92x0-91x0。这两个PATCH
可以解决你的问题。
 
你建立一个唯一键再试一试
 
我下载了delphi5 entirepress update,ado pack1,ado pack2并安装上了,重新启动计算机
可是还是出现上述错误提示呀。谁告诉我为什么?
 
可能是你没有对数据库加入约束造成的
设一个主键试试。
如果还有问题
就在你的程序中找吧
 
re hua8hua
我的ado表有唯一主键。
 
C/S还是三层?
该原因一般是由于Ado无法定位原先那条记录所引起的,所以应该从这方面着手考虑,这
应该不是打不打补丁的问题。
 
是c/s的。
为什么不能定位原来的那条记录?
我的dbgrid1的datasource是 datasource1
datasource1的dataset是adotable1
当在dbgrid1里选择一条记录时按buttonedit 进行修改buttonedit的click如下:
adotable1.edit;
.
.
给字段赋值。
.
adotalbe1.post;
进行到post的时候就提示那个错误。而添加记录的时候不会出问题。程序很简单啊,可是
就是出错,急死我了。

 
出现这个错误时应该是在修改String类型的字段时吧,而且只修改字符串的最后一位吧
如果是修改超过两位以上时就不会出错,

如果是这种错误倒是可以解决,如果不是,那就要探讨一下了
 
执行Requery,OK
 
我遇到的这种情况,一般是用一个DBControl(如DBGrid)通过一个ADODataSet(如ADOQuery)连到
一个表上,使用中光标指向了它的一条记录,然后在其它的地方删除或更新了这个表(可以是
SQL命令或触发器或是其它的数据控件),再回到这个控件上时,就有这个问题。
好象是Borland的ADO控件与传统的DBControl类控件的连接有问题,

一般我是在处理了这个表以后调用对应的数据集控件的Refresh来刷新:
ADOQuery.Refresh;
 
我也遇到此问题, ADO有点莫名其妙
 
查一查这个问题,可能会对你有所帮助
http://www.delphibbs.com/delphibbs/dispq.asp?lid=537377
 
多人接受答案了。
 
后退
顶部