在ADODB连接字符串中将提供程序从SQLOLEDB更改为MSOLEDBSQL时,我们得到以下错误:
无法找到
-2147217864行以进行更新。某些值自上次读取以来可能已更改。
连接字符串是:
Provider=MSOLEDBSQL;SERVER=servername;APP=Applicationname;DATABASE=databasename;WSID=id;Trusted_Connection=yes;MARS Connection=True;DataTypeCompatibility=80
代码看起来是:
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时,使用相同的代码,它工作得很好,没有任何问题。
发布于 2021-12-08 02:20:45
尝试向表中添加时间戳,即所谓的"rowversion“列。(使用时间戳类型-它与时间无关)。
另外,如果表中有任何位列,那么确保它们不是空列,并确保为该位列设置了默认值(0)。
如果应用程序已经链接了表,那么在您完成上述更改服务器端之后,重新链接您的表。
https://stackoverflow.com/questions/70272314
复制相似问题