Две транзакции в одну

Автор Тема: Две транзакции в одну  (Прочитано 2051 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Две транзакции в одну
« : 04-08-2019, 21:19:09 »
Создаю трубу => не закрывая транзакцию пытаюсь получить коннектор => получаю null (ревит не получает коннектор сразу после создания)
doc.Regenerate не помогает

Проблема в том, что не получается создать две трубы в пределах одной транзакции (конец (коннектор) вновь созданной трубы является началом следующей) , если каждую трубу создавать в отдельной транзакции, то все ок.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Две транзакции в одну
« Ответ #1 : 04-08-2019, 21:20:00 »
А вопрос то в чем?

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две транзакции в одну
« Ответ #2 : 04-08-2019, 21:20:42 »
не получается создать две трубы в пределах одной транзакции

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Две транзакции в одну
« Ответ #3 : 04-08-2019, 21:21:55 »
Ну сделайте две транзакции. Да хоть три))
Вопрос то в чем?

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две транзакции в одну
« Ответ #4 : 04-08-2019, 21:23:44 »
Для чего одна транзакция? Чтобы откатить все изменения одним нажатием , а не делать это для каждой созданной трубы

Отмечено как Решение enot 04-08-2019, 21:39:12

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Две транзакции в одну
« Ответ #5 : 04-08-2019, 21:29:38 »
Для чего одна транзакция?
Я не спрашивал для чего одна транзакция - я спрашивал в чем ваш вопрос?! Вижу тему, в которой просто изложены утвердительные факты и в упор не вижу вопроса!
Могу предположить, что ваш вопрос звучит как-то так: "Как объединить несколько транзакций в одну?". Если вопрос в этом, то вот так:
Код - C# [Выбрать]
  1. using (TransactionGroup trGroup = new TransactionGroup(doc, "Транзакция, которую хочу откатить")
  2. {
  3.   trGroup.Start();
  4.  
  5.   using (Transaction tr = new Transaction(doc, "Transaction A")
  6.   {
  7.     tr.Start();
  8.     // do something
  9.     tr.Commit();
  10.   }
  11.  
  12.   using (Transaction tr = new Transaction(doc, "Transaction B")
  13.   {
  14.     tr.Start();
  15.     // do something
  16.     tr.Commit();
  17.   }
  18.  
  19.   trGroup.Assimilate();
  20. }

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две транзакции в одну
« Ответ #6 : 04-08-2019, 21:38:40 »
Да, то что нужно! Благодарю!

именно
trGroup.Assimilate();

а не trGroup.Commit()