Методы расширения и транзакция

Автор Тема: Методы расширения и транзакция  (Прочитано 3647 раз)

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

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

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Всех приветствую.
Возник вопрос. Когда я пишу метод расширения, например для BlockReference, мне нужно в этом методе открывать транзакцию для каких-либо манипуляций с объектом, если транзакция уже была открыта для этого объекта?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Методы расширения и транзакция
« Ответ #1 : 04-05-2020, 15:41:41 »
Всех приветствую.
Возник вопрос. Когда я пишу метод расширения, например для BlockReference, мне нужно в этом методе открывать транзакцию для каких-либо манипуляций с объектом, если транзакция уже была открыта для этого объекта?
А что имеется в виду под "транзакция уже была открыта для этого объекта"? Это случайно не объект уже открыт в какой-то транзакции?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Методы расширения и транзакция
« Ответ #2 : 04-05-2020, 16:15:52 »
Всех приветствую.
Возник вопрос. Когда я пишу метод расширения, например для BlockReference, мне нужно в этом методе открывать транзакцию для каких-либо манипуляций с объектом, если транзакция уже была открыта для этого объекта?
А что имеется в виду под "транзакция уже была открыта для этого объекта"? Это случайно не объект уже открыт в какой-то транзакции?
Ну да. Есть метод расширения. Есть основной код, в нём я получаю objectId объекта и открываю транзакцию на чтение/запись объекта и в этой транзакции, потом я вызываю метод расширения (у меня названия методов подразумевают чтение(get*, read*, is*) или запись(set*, add*, erase*) я думаю логика понятна).

Отмечено как Решение Lemieux 04-05-2020, 16:27:39

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Методы расширения и транзакция
« Ответ #3 : 04-05-2020, 16:19:13 »
Lemieux,
Логика понятна. Непонятна реализация. Ты же работаешь уже с готовым BlockReference. Зачем же тебе транзакция если он уже открыт?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Методы расширения и транзакция
« Ответ #4 : 04-05-2020, 16:27:30 »
Lemieux,
Логика понятна. Непонятна реализация. Ты же работаешь уже с готовым BlockReference. Зачем же тебе транзакция если он уже открыт?
Да я просто уточнить, я ведь люблю делать не всегда правильно. Так-то у меня всё работает, меня просто смущали методы на проверку состояния открытия объекта. Я пока ещё не совсем понимаю как лучше работать с транзакциями. Когда лучше разделять транзакции, а когда можно работать с кучей объектов и выполнять кучу действий. Где нужны вложенные транзакции, а где нет. В книгах и на сайтах пишут только о том, как можно открывать объекты и какие варианты правильные/неправильные.