powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов метода класса из другой области в cache 2008
12 сообщений из 12, страница 1 из 1
Вызов метода класса из другой области в cache 2008
    #38418276
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос на засыпку. Как вызвать метод класса из другой области в Cache 2008?
В Cache 2013 это возможно путем смены области с помощью @ZNAMESPACE (если не напутал что по памяти).
Но в справке к 2008 написано, что менять область в коде крайне не рекомендуется, да и метод для 2013 в чистом виде не работает.
Но очень нужно вызвать из кода в своей области метод класса из %SYS, причем именно в 2008-й версии.
Как жить?
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418279
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправка $ZNAMESPACE
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418497
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht VictorКак вызвать метод класса из другой области в Cache 2008?
Только перейти в ту область...

Hisbreht Victorпоправка $ZNAMESPACE
Еще одна поправка...

Код: javascript
1.
ZNSPACE "область"
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418498
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht VictorНо в справке к 2008 написано, что менять область в коде крайне не рекомендуется
Опа ганга стайл.
И в чем там криминал?
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418558
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Криминал в том, что если вы поменяется область, а у вас останутся объекты, открытые в другой области,
то работать они не будут (даже переменную удалить нельзя будет). Может еще в чем-то.
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418579
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht Victor,

может вам просто этот пакет отобразить на вашу область?
http://docs.intersystems.com/cache20082/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_packages#GOBJ_packages_mapping
Какой именно системный метод вы вызвать хотите?
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418583
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Криминал в том, что если вы поменяется область, а у вас останутся объекты, открытые в другой области
На то ответ простой - не делайте так.
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418605
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht VictorВ Cache 2013 это возможно путем смены области с помощью @ZNAMESPACE (если не напутал что по памяти).В Cache 2013 используются те же команды , дополнение лишь - $NAMESPACE , появившаяся в 2010.1 .Hisbreht Victorда и метод для 2013 в чистом виде не работает.Какой метод не работает? Что значит "в чистом виде"?Hisbreht VictorНо очень нужно вызвать из кода в своей области метод класса из %SYS, причем именно в 2008-й версии.В документации приведён пример кода . Он у Вас не работает?
Можно вообще обойтись изменением текущей области, использовав отображение пакетов .krvsaHisbreht VictorНо в справке к 2008 написано, что менять область в коде крайне не рекомендуетсяОпа ганга стайл.
И в чем там криминал?Also, changing namespaces demands a relatively high amount of computing power compared to other commands; if possible, application code should avoid it.
источник Ещё, наверное, в скорости переключения. Но уже с версии 2009.1 появилось соответствующее улучшение: Faster Namespace Activation .
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38418625
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitЕщё, наверное, в скорости переключения.
Ясно...

servitНо уже с версии 2009.1 появилось соответствующее улучшение: Faster Namespace Activation .
Значит нам тот "криминал" не страшен.
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38419462
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, как оно часто бывает, естественно немного напутал.
Про фокус из 2013 я имел ввиду следующее
When you wish to temporarily change the current namespace, perform some operation, then revert to the prior namespace, use SET $NAMESPACE. Because $NAMESPACE permits you to NEW $NAMESPACE, it reverts to the original namespace when either the subroutine completes or an unexpected error occurs. See $NAMESPACE special variable for details. Если я правильно понял, то это позволяет культурно временно поменять область и вернуться обратно в "родную" при выходе из функции. Если не прав, поправьте.

В 2008 это не срабатывает.
Для нее в справке вообще прописано
Object and SQL code assumes that it is running in a single namespace; hence, changing namespaces with open object instances or SQL cursors can lead to code running incorrectly. Typically, there is no need to explicitly change namespaces, as the various Object, SQL, and CSP servers automatically ensure that application code is run in the correct namespace.
Also, changing namespaces demands a relatively high amount of computing power compared to other commands; if possible, application code should avoid it.
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38419473
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hisbreht Victor$NAMESPACE
...
позволяет культурно временно поменять область и вернуться обратно в "родную" при выходе из функции
Судя по примерам в документации - да.
...
Рейтинг: 0 / 0
Вызов метода класса из другой области в cache 2008
    #38419474
Hisbreht Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр КобловКакой именно системный метод вы вызвать хотите?Нужно подергать за разные методы класс SYS.Database.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов метода класса из другой области в cache 2008
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]