Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server DAO到.mdb,ADO到.mdf比较_Sql Server_Ado_Dao_Jet_Recordset - Fatal编程技术网

Sql server DAO到.mdb,ADO到.mdf比较

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

这段代码基于联接表编辑记录集在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进行操作的一种正常方式,还是有一种解决方法。
我这样问是因为在试图找到解决方案时(在我放入额外的update语句之前),我将记录集类型更改为BatchOptimization,没有收到错误消息,但只编辑了一个表的记录。

显然,您的记录集的数据源是一个从多个表返回数据的SQL。是的,一次只能更新一个表是正常的。如果您想在一个原子步骤中更新多个表中的值(这样其他客户端用户就无法读取“中间值”,其中一个表已更改,而另一个表未更改),您需要。

错误消息到底说了什么?@Heinzi,抱歉,我应该这么做,我已经编辑了这个问题,将其放入了正确的错误消息中。谢谢,是的,事务现在看起来更为必要,因为它现在不仅仅是DAO场景中的一个更新。但除此之外,我很高兴知道这是一个好办法