此頁沒有內(nèi)容條目
內(nèi)容

步驟 6:結(jié)束更新(ADO 教程)

您所在的步驟...

?連接數(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_fnameau_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é)束。