DAO到.mdb,ADO到.mdf比较

时间:2010-11-28 11:39:06

标签: 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'(80004005)':   无法插入或更新多个表中的列。

然而,如果改变它似乎有效:

            RS.fields("fieldA").value = 0  'in table A
     RS.Update
            RS.fields("fieldB").value = 0  ' in table B                
     RS.Update

这是用sql server做事的正常方法还是有问题。 我问,因为在尝试找到解决方案时(在我输入额外的更新语句之前)我将记录集类型更改为batchoptimistic并且我没有错误消息,但只编辑了一个表的记录。

1 个答案:

答案 0 :(得分:2)

显然,记录集的数据源是从多个表返回数据的SQL。是的,一般只能更新一个表是正常的。如果要在单个原子步骤中更新多个表中的值(以便其他任何客户端都不能读取“中间值”,其中一个表已更改但另一个表未更改),则需要use a transaction