Настольная СУБД Access 2002

         

Программа 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



Содержание раздела