日期:2014-05-16  浏览次数:20927 次

链接服务器"server"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "无法为更新定位行。一些值可能已在最后一次读取后已更改
链接服务器 "server" 的 OLE DB 访问接口 "MSDASQL" 无法 UPDATE 表 "[MSDASQL]"。行集正在使用乐观并发机制,而自上次提取或重新同步包含列值的行后,该列值又有更改。
链接服务器"server"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "无法为更新定位行。一些值可能已在最后一次读取后已更改。"。

经过测试如果在本地的mysql里更新一条数据,如果更新命令是:update 表名 set 列名 = 更新值 where 条件 = 条件
执行第一次的时候没有问题,执行第二次的时候影响行数的0,但是要在远程调用的话,就会报上面的错误,我的意思是,可不可以不让他报以上的错误,或者说在mysql里那里可以设置,请高手帮帮忙。

------解决方案--------------------
是用MYODBC连的吗?
flag中有return matching rows 这项 应该打勾
对应连接字符串中的option值 +2
------解决方案--------------------
update IGNORE 表名 set 列名 = 更新值 where 条件 = 条件
------解决方案--------------------
如果用MYODBC 的DSN的话,请进入ODBC配置栏, 将flag中有return matching rows 这项 打勾 

如果用MYODBC的连接字符串,请将OPTION值 加 2
 "driver={MySQL ODBC 3.51 driver},server=xxx,db=xxx,uid=xxx,pwd=xxx,option=3"
(备注,每个选项对应option一个值,如1,2,4,8..., 选中某个就加某个值)

你可能是用DSN.
------解决方案--------------------
看MYSQL-ODBC帮助
http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-connection-parameters.html