powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос о транзакции.
4 сообщений из 4, страница 1 из 1
Вопрос о транзакции.
    #32640659
tim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполнение цепочки управляющих запросов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DBEngine.Workspaces( 0 ).BeginTrans
If ПроцедураЗапуска("Запрос1") =  0  Then
      If ПроцедураЗапуска("Запрос2") =  0  Then
          Workspaces( 0 ).CommitTrans
      else
         Workspaces( 0 ).Rollback
      end if
else
    Workspaces( 0 ).Rollback
end if
Нужно между двумя "постоянными" шагами в цепочке добавить шаг, который бы выполнялся только по некоторому условию. Как в этом случае с транзакцией быть? Получается что-то корявое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
If ПроцедураЗапуска("Запрос1") =  0  Then
 If bl Then
    If ПроцедураЗапуска("Запрос3") =  0  Then
        Вот здесь чего-то не хватает...
    else
        Workspaces( 0 ).Rollback
    end if
 end if
      If ПроцедураЗапуска("Запрос2") =  0  Then
          Workspaces( 0 ).CommitTrans
      else
         Workspaces( 0 ).Rollback
      end if
else
    Workspaces( 0 ).Rollback
end if
Проблема чтобы с этим дополнительным шагом и из транзакции не вывалиться и откат, в случае чего, грамотно сделать.
...
Рейтинг: 0 / 0
Вопрос о транзакции.
    #32640735
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DBEngine.Workspaces( 0 ).BeginTrans
If ПроцедураЗапуска("Запрос1")  <>  0  Then
      Workspaces( 0 ).Rollback
      Exit Sub
End If
If ПроцедураЗапуска("Запрос2") <>  0  Then
      Workspaces( 0 ).Rollback
      Exit Sub
End If
Workspaces( 0 ).Commit

Либо метки.
...
Рейтинг: 0 / 0
Вопрос о транзакции.
    #32640965
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
off

Workspaces(0).BeginTrans

Что-то у меня не получалось так с транзакциями работать :(
Приходилось делать
Set ws = Workspaces(0)
а уже над этой переменной (ws) делать транзакции

Ты бы проверил (а может у мну сервис-паков не хватает)

/off
...
Рейтинг: 0 / 0
Вопрос о транзакции.
    #32641027
Идя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  dim Blz as Boolean

  Blz= ПроцедураЗапуска("Запрос1")= 0 

If blz Then
 If bl Then
    Blz=Blz AND  ПроцедураЗапуска("Запрос3") =  0 
    If Blz Then
        Вот здесь чего-то не хватает...
    end if
 end if

    Blz=Blz AND ПроцедураЗапуска("Запрос2") =  0 

end if

If Blz Then
         Workspaces( 0 ).CommitTrans
Else
         Workspaces( 0 ).Rollback
Endif



что-то такое...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос о транзакции.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]