您所在的步驟...
? | 連接數(shù)據(jù)源。 |
? | 可選擇創(chuàng)建表示 SQL 查詢命令的對(duì)象。 |
? | 可選擇在 SQL 命令中將值指定為變量參數(shù)。 |
? | 執(zhí)行命令。如果命令以行返回,將行存儲(chǔ)在存儲(chǔ)對(duì)象中。 |
? | 可選擇對(duì)數(shù)據(jù)進(jìn)行定位、檢查、操作和編輯。 |
? | 適當(dāng)情況下,可以使用存儲(chǔ)對(duì)象中的變更對(duì)數(shù)據(jù)源進(jìn)行更新??蛇x擇在事務(wù)處理中嵌入更新數(shù)據(jù)。 |
? | 在使用事務(wù)之后,可以接受或拒絕在事務(wù)中所做的更改。結(jié)束事務(wù)。 |
討論
假設(shè)批更新結(jié)束時(shí)發(fā)生錯(cuò)誤,如何解決將取決于錯(cuò)誤的性質(zhì)和嚴(yán)重性以及應(yīng)用程序的邏輯關(guān)系。如果數(shù)據(jù)庫是與其他用戶共享的,典型的錯(cuò)誤則是他人在您之前更改了數(shù)據(jù)字段,這種類型的錯(cuò)誤稱為“沖突”。ADO 將檢測到這種請況并報(bào)告錯(cuò)誤。
本教程中的該步驟分為兩部分:如果不存在更新錯(cuò)誤則“提交”事務(wù),結(jié)束更新。
如果錯(cuò)誤存在,它們會(huì)被錯(cuò)誤處理例程捕獲??墒褂?adFilterConflictingRecords 常數(shù)對(duì) Recordset 進(jìn)行篩選,將沖突行顯示出來。要糾正錯(cuò)誤只需打印作者的姓和名(au_fname 和 au_lname),然后回卷事務(wù),放棄成功的更新。由此結(jié)束更新。
...
conn.CommitTrans
...
On Error
rs.Filter = adFilterConflictingRecords
rs.MoveFirst
Do While Not rs.EOF
Debug.Print "Conflict: Name: " & rs("au_fname") " " & rs("au_lname")
rs.MoveNext
Loop
conn.Rollback
Resume Next
...
本教程到此結(jié)束。