0

我有一段代码将新行插入表中,然后检索 SerialNo,使用 SerialNo 更新 ReferenceNo 列,然后再次更新数据库。

但是,在第二次更新时,我收到以下错误: 无法定位行进行更新。自上次读取以来,某些值可能已更改。

代码看起来像这样

DataEnvironment1.rsAddNewMsg.Open

With DataEnvironment1.rsAddNewMsg

.Field1 ="mpla"
.Field2 ="mpla"
....

.Update

.ReferenceNo = "Mpla" + SerialNo

.Update

DataEnvironment1.rsAddNewMsg.Close

该错误发生在第二次更新时。

4

2 回答 2

1

经过两天的努力解决这个错误,我终于找到了问题所在。问题是我在表格上的一个约束,以便将另一个字段(不相关)默认为“N”。禁用此约束后,我的代码就像一个魅力!:)

呸呸呸!

只是为了我的记录,为了设法找到原因,我用一个小的新表模拟错误,上面有标识。在测试期间,我注意到更新正在处理那个。所以更新部分没问题。因此,我将一部分正常代码分开并通过更改表上的属性进行测试,直到找到原因。

不过谢谢你的帮助:)

于 2012-09-12T07:21:10.027 回答
0

您可能需要重新打开记录集以获取您的更改。您还可以尝试打开一个动态类型的记录集,它可能更好地反映数据的更新。我想你会默认打开一个只进的记录集。

抱歉,自从我上次使用 ADO 以来已经很长时间了,所以我有点生疏了!

于 2012-09-11T08:35:34.267 回答