此代码基于连接表编辑记录集在DAO / .mdb数据库中工作
RS.Edit
RS.fields("fieldA").value = 0 'in table A
RS.fields("fieldB").value = 0 ' in table B
RS.Update
代码在sql server数据库上转换为ado,但失败并显示错误消息:
运行时错误'-2147467259'(80004005)': 无法插入或更新多个表中的列。
然而,如果改变它似乎有效:
RS.fields("fieldA").value = 0 'in table A
RS.Update
RS.fields("fieldB").value = 0 ' in table B
RS.Update
这是用sql server做事的正常方法还是有问题。 我问,因为在尝试找到解决方案时(在我输入额外的更新语句之前)我将记录集类型更改为batchoptimistic并且我没有错误消息,但只编辑了一个表的记录。
答案 0 :(得分:2)
显然,记录集的数据源是从多个表返回数据的SQL。是的,一般只能更新一个表是正常的。如果要在单个原子步骤中更新多个表中的值(以便其他任何客户端都不能读取“中间值”,其中一个表已更改但另一个表未更改),则需要use a transaction