在 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 时,使用相同的代码它可以正常工作,没有任何问题。