2010-11-28 54 views
1

此代碼編輯基於連接表的記錄在DAO工作/的.mdb數據庫DAO來的.mdb,ADO到.MDF比較

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

的代碼轉化爲結結實實一個SQL Server數據庫,但是失敗帶有錯誤信息:

運行時錯誤'-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,我沒有錯誤messge但只有一個表的記錄被編輯。

+0

錯誤信息說的是什麼? – Heinzi 2010-11-28 12:14:42

+0

@Heinzi,對不起,我應該這樣做了,我編輯了這個問題來輸入確切的錯誤信息。 – jjb 2010-11-28 12:51:23

回答

2

顯然,您的記錄集的數據源是從多個表中返回數據的SQL。是的,一次只能更新一張表是正常的。如果要在單個原子步驟中更新多個表中的值(以便其他客戶端不能讀取「中間值」,其中一個表被更改但另一個表未更改),則需要use a transaction