【问题标题】:DAO to .mdb, ADO to .mdf comparisonDAO 到 .mdb,ADO 到 .mdf 比较
【发布时间】:2010-11-28 11:39:06
【问题描述】:

此代码编辑基于连接表的记录集在 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 并且我没有收到错误消息,但只编辑了一个表的记录。

【问题讨论】:

  • 错误信息到底是什么意思?
  • @Heinzi,对不起,我应该这样做,我已经编辑了问题以输入确切的错误消息。

标签: sql-server ado dao jet recordset


【解决方案1】:

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

【讨论】:

  • 谢谢,是的,事务现在看起来更有必要了,因为它现在不仅仅是 DAO 场景中的 1 次更新。但除此之外,我很高兴知道这是一种可行的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 2012-04-01
  • 1970-01-01
  • 2010-10-28
  • 2020-05-17
相关资源
最近更新 更多