ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Доступ к базам данных, связанным с нетекущими документами


Иногда Вы будете должны смотреть или изменить базы данных, связанные с другими документами, но не нуждаться в любом явном вводе пользователя в них. Вы могли бы даже смотреть на кое-что связанное с другим документом.

Чтобы просто исследовать базы данных, связанные с другими документами, Вы не должны блокировать документ, хотя, если документ блокирован в AcAp:: kXWrite режиме другим контекстом выполнения, Вы будете лишены доступа к любому из его элементов.

Чтобы изменять базы данных, связанные другими документами, или предотвращать другие контексты выполнения от изменения их на некоторое время, Вы должны блокировать документ, определяя AcAp::kXWrite, AcAp::kWrite, или AcAp::kRead, в зависимости от вашего намерения. Если командный процессор документа не статический, это обычно уже блокируется, и если это взаимно исключает вашу блокировку, Вы будете лишены доступа.

ОБРАТИТЕ ВНИМАНИЕ При изменении объектов базы данных в нетекущем документе, если Вы должны использовать сделки, убедитесь, что использовали операционного менеджера, связанного с документом.

Такие модификации не будут невыполнимые из текущего документа. Вместо этого они будут зарегистрированы со стеком отмены их ведущего документа, и уничтожены,  используя отмену, когда ведущий документ текущий.Когда закончено с информацией, связанной с документом, убедитесь, что разблокировали это как можно скорее, минимизировали потенциал для конфликтов с другими командами.



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