Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: simson43 от 26-10-2018, 14:54:06
-
Здравствуйте!
обрабатываю я текущий документ, транзакция открыта.
как вдруг мне нужно считать данные из внешней ссылки.
я просто открываю вторую транзакцию базы данных этой самой внешней ссылки?
ну и блокирую документ внешней ссылки соответственно верно? или получая базу данных внешней ссылки не нужно блокировать?
или есть какие то нюансы подводные камни или еще что?
Спасибо.
-
как вдруг мне нужно считать данные из внешней ссылки.
я просто открываю вторую транзакцию базы данных этой самой внешней ссылки?
Внешняя ссылка вставляется в виде блока в чертёж. Поэтому, насколько я понимаю, читать данные из неё можно просто как из обычного блока чертежа.
ну и блокирую документ внешней ссылки соответственно верно? или получая базу данных внешней ссылки не нужно блокировать?
Опять же, это зависит от того, как открывается внешняя ссылка и для каких целей.
-
получаю BlockTableRecord по objectId
затем получаю базу данных через GetXrefDatabase
затем открываю транзакцию и просто достаю информацию что мне нужна.
-
Если так - тогда есть пример: https://www.keanw.com/2015/01/modifying-the-contents-of-an-autocad-xref-using-net.html
-
Здесь т е наоборот?
Блокирует файл и без транзакции вовсе..
-
Насколько я вижу, там блокировка с помощью XrefFileLock.LockFile. Значит, блокировка используется.
А в методе ChangeEntityLinetype запускается транзакция для БД ссылки и идут манипуляции с её объектами. Так что, с транзакцией.
-
Ах да. Я невнимателен.
Т е блокировка все нужна?
Даже если я ничего не записываю и не меняю?
-
получаю BlockTableRecord по objectId
затем получаю базу данных через GetXrefDatabase
затем открываю транзакцию и просто достаю информацию что мне нужна.
Если только читаешь из этой базы, то блокировка не нужна.
-
Спасибо всем большое!