S7-1500. ANY_DB
Ааааааааааа.... Несколько дней прошло с зудящей мыслью, а что это за фрукт такой ANY_DB. И вот наконец-то теоретическое послание о том что такое ANY_DB и попытки разобраться, а зачем он нужен(я так и не понял, но об этом после).
Немного неофициальной теории
В целом это еще один инструмент для унификации процессов и написании мега универсальных ФБ. Особенность того, что ANY_DB хранит номер DB и может быть использован до того как мы создали дб. В ANY_DB хранится номер любой БД(Ох если все было так просто).
Вы не сможете записать в параметр ANY_DB DB с резервированием памяти
И так что мы можем точно писать в ANY_DB:
1)Экземпляры UDT и системных типов
2)Экземпляры FB
3)DB которые были созданы как массив.
Из этого списка пункты 1 и 3 имеют возможность конвертирования в Variant. В целом есть две команды:
VARIANT_TO_DB_ANY
DB_ANY_TO_VARIANT
И больше с этим типом данных нельзя сделать НИ-ЧЕ-ГО!
Как ANY_DB в VARIANT превратить и что с этим дальше делать.
В целом после столь скудной теоретической части давайте фантазировать.
ANY_DB мы можем конdертить в variant.
А дальше там скармливать что хочешь и куда хочешь, у нас же есть REF_TO и ?=
В коде это будет выглядеть следующим образом:
Ну и если подняться выше, то можно узнать, что на вход ANY_DB я подаю Data_Block_2
Тут для закрепления требуется какая-то задачка, но на ум пока ничего толкового не приходит. Разве что какая-то фантастическая сборная линия с тремя операциями по координатам. Но если вдруг у вас появились идеи как это куда-то приделать или вы использовали где-то, то пожалуйста, поделитесь информацией.
Лига КИПиА
37 постов452 подписчика
Правила сообщества
Правила - в соответствии с общими правилами Пикабу.