Программа 16.11. Применение механизма транзакций
Программа 16.11. Применение механизма транзакций
Sub ResetCount ()
Dim ws As Workspace Dim db As Database Dim rs As Recordset Dim flnTrans As Boolean
On Error GoTo errHandler ;..
flnTrans = False ' Транзакция еще не началась
Set ws = DBEngine.Workspaces(0)
Set db = CurrentDb
Set rs = db.OpenRecordset("Игроки", dbOpenTable)
ws.BeginTrans ' Начало транзакции flnTrans = True ' ' Транзакция началась rs.MoveFirst Do Until rs.EOF
rs.Edit
rs!Счет = 0
rs.Update
rs.MoveNext Loop If MsgBox("Сохранить сделанные изменения?", _
vbQuestion + vbYesNo, "Вопрос") = vbYes Then
ws.CommitTrans ' Сохранить изменения Else
ws.Rollback ' Отменить изменения End If
exitHandle: rs.Close
Set db = Nothing Set ws = Nothing Exit Sub errHandler:
MsgBox "Ошибка!"
' Если ошибка возникла в процессе выполнения транзакции,
' отменяем сделанные изменения
If flnTrans Then
ws.Rollback End If
Resume exitHandle End Sub