Sql server DAO到.mdb,ADO到.mdf比较
这段代码基于联接表编辑记录集在DAO/.mdb数据库中工作Sql server DAO到.mdb,ADO到.mdf比较,sql-server,ado,dao,jet,recordset,Sql Server,Ado,Dao,Jet,Recordset,这段代码基于联接表编辑记录集在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'(800040
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进行操作的一种正常方式,还是有一种解决方法。
我这样问是因为在试图找到解决方案时(在我放入额外的update语句之前),我将记录集类型更改为BatchOptimization,没有收到错误消息,但只编辑了一个表的记录。显然,您的记录集的数据源是一个从多个表返回数据的SQL。是的,一次只能更新一个表是正常的。如果您想在一个原子步骤中更新多个表中的值(这样其他客户端用户就无法读取“中间值”,其中一个表已更改,而另一个表未更改),您需要。错误消息到底说了什么?@Heinzi,抱歉,我应该这么做,我已经编辑了这个问题,将其放入了正确的错误消息中。谢谢,是的,事务现在看起来更为必要,因为它现在不仅仅是DAO场景中的一个更新。但除此之外,我很高兴知道这是一个好办法