Выполнение
транзакций
Таблица
16.7.
Методы объекта Workspace для выполнения транзакций
Метод
|
Описание
|
||
BeginTrans |
Обозначает начало транзакции. Транзакции могут быть вложенными |
||
CommitTrans | Обозначает конец транзакции. В этот момент все изменения сохраняются в источнике без возможности их отмены | ||
RollBack | Завершение транзакции и отмена результата ее выполнения. Записи в источнике возвращаются в прежнее состояние, отмеченное командой BeginTrans |
Рассмотрим пример программы на VBA с использованием механизма выполнения транзакций (программа 16.11). В приложении "Игра в доминирование" механизм транзакций не используется.
Программа
16.11. Применение механизма транзакций
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
Назад | Начало | Вперед |