首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错误:无法找到用于更新的行。某些值自上次读取以来可能已更改。如何将提供者从SQLOLEDB更改为MSOLEDBSQL

错误:无法找到用于更新的行。某些值自上次读取以来可能已更改。如何将提供者从SQLOLEDB更改为MSOLEDBSQL
EN

Stack Overflow用户
提问于 2021-12-08 01:00:02
回答 1查看 1.6K关注 0票数 1

在ADODB连接字符串中将提供程序从SQLOLEDB更改为MSOLEDBSQL时,我们得到以下错误:

无法找到

-2147217864行以进行更新。某些值自上次读取以来可能已更改。

连接字符串是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Provider=MSOLEDBSQL;SERVER=servername;APP=Applicationname;DATABASE=databasename;WSID=id;Trusted_Connection=yes;MARS Connection=True;DataTypeCompatibility=80

代码看起来是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient 
rs.Open("SELECT * FROM tableName WHERE 1 = 2", Adoconnection, adOpenStatic, adLockBatchOptimistic, CommandTypeEnum.adCmdText) 
rs.AddNew
'Add the fields
...
...
rs.UpdateBatch ''this line throws error

现在,当提供程序的连接字符串被更改为SQLOLEDB时,使用相同的代码,它工作得很好,没有任何问题。

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 02:20:45

尝试向表中添加时间戳,即所谓的"rowversion“列。(使用时间戳类型-它与时间无关)。

另外,如果表中有任何位列,那么确保它们不是空列,并确保为该位列设置了默认值(0)。

如果应用程序已经链接了表,那么在您完成上述更改服务器端之后,重新链接您的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70272314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文