powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Узнать классы пакета
25 сообщений из 27, страница 1 из 2
Узнать классы пакета
    #37921271
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать какие классы принадлежат указанному пакету?
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37921314
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov TimurКак узнать какие классы принадлежат указанному пакету?
Как вариант сделать запрос к %Dictionary.CompiledClass ...
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37921477
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, то что нужно, только подскажите как сделать этот запрос в программе?
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37921536
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37921607
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, очень выручил!!
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37951200
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите пожалуйста, а как получить подпакеты указанного пакета?
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37951761
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov Timur , а что такое "подпакет"?
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37951813
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Возможно я неправильно сформулировал, подразумевалось как узнать какие пакеты находятся в данном пакете
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37951841
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я нашел как это сделать:

s key=""
for { s package = ##class(%Dictionary.PackageDefinition).GetPackageList().GetNext(.key) Q:key=""
if $find(package,packageName_".") {w !, package}
}

Если есть ещё способы, пишите, очень интересно узнать
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37951891
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил похвастаться, да не тут то было. Моя версия выдает названия пакетов, все буквы которых находятся в верхнем регистре.А мне нужно как записано.
Пример на рисунке.
Вопрос все тот же, помогите разобраться, очень нужно
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952067
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov Timur,
Код: vbnet
1.
d ##class(%ResultSet).RunQuery("%Dictionary.PackageDefinition","SubPackage","%SYSTEM")


Остальное из документации
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952471
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе посмотрел код класса %ResultSet переделал. получилось вот так:

#include %occStatus
#Include %soap
New rs,columns,%sc,i,execute,i
Set rs=##class(%ResultSet).%New("%Dictionary.PackageDefinition:SubPackage")

Set execute="Set %sc=$method(rs,""Execute"""
Set execute=execute_",.namePackage"
Set execute=execute_")"
Xecute execute

If $$$ISERR(%sc) Do DisplayError^%apiOBJ(%sc) Quit

Set columns=rs.GetColumnCount()
For Quit:rs.Next(.%sc)=0 if $$$ISOK(%sc) { Write ! For i=1:1:columns Write rs.GetData(i) } else { quit }
if $$$ISERR(%sc) do $system.OBJ.DisplayError(%sc)
Quit
q
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952577
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov Timur,

Зачем делать так:
Код: javascript
1.
2.
3.
4.
 Set execute="Set %sc=$method(rs,""Execute"""
 Set execute=execute_",.namePackage"
 Set execute=execute_")"
 Xecute execute


когда можно так:
Код: javascript
1.
 Set %sc=$method(rs, "Execute", .namePackage)
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952620
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Или вообще
Код: sql
1.
 Set %sc=rs.Execute(.namePackage)
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952641
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Коблов,

Полностью согласен :)
Просто хотел показать Тимуру излишество Xecute в данной ситуации, т.к. функции $method, $classmethod и пр. как раз и были придуманы, чтобы не пользоваться Xecut'ом.
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952743
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov Timurподразумевалось как узнать какие пакеты находятся в данном пакете
Вообще-то у имени класса есть два термина
Код: html
1.
[пакет].<имя>


Внутри "пакета" может быть несколько раз повторен символ "." (точка)... В собственно имени точки быть не может.
Т.о. никакого "подпакета" у класса и быть не может.
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952824
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovAdylov Timur,

Зачем делать так:
Код: javascript
1.
2.
3.
4.
 Set execute="Set %sc=$method(rs,""Execute"""
 Set execute=execute_",.namePackage"
 Set execute=execute_")"
 Xecute execute


когда можно так:
Код: javascript
1.
 Set %sc=$method(rs, "Execute", .namePackage)



в принципе я так и сделал, просто этот код я содрал из класса %ResultSet
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952836
Adylov Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovАлександр Коблов,

Полностью согласен :)
Просто хотел показать Тимуру излишество Xecute в данной ситуации, т.к. функции $method, $classmethod и пр. как раз и были придуманы, чтобы не пользоваться Xecut'ом.

Объясните, чем плох Xecute, что его заменили $method и $classmethod. Очень интересно
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37952842
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

подпакет может быть не у класса, а у пакета. Запрос %Dictionary.PackageDefinition:SubPackage как раз их и выдаёт.
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37953092
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adylov Timur, надо было читать документацию
Код: vbnet
1.
2.
3.
4.
5.
6.
s rs = ##class(%ResultSet).%New("%Dictionary.PackageDefinition:SubPackage")
s sc = rs.Execute( package )
while rs.Next() { 
 w !, $g(rs.Data("Name"))
}
d rs.Close() k rs
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37953512
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovподпакет может быть не у класса, а у пакета.
Тогда что есть "пакет"?
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37955706
Гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaAlexey Maslovподпакет может быть не у класса, а у пакета.
Тогда что есть "пакет"? ДокаEach Caché class has a name, which must be unique within the namespace where it is defined.
A full class name is a string delimited by one or more periods, as in the following example: package.subpackage.subpackage.class .
The short class name is the part after the final period within this string; the part preceding the final period is the package name .
Each period-delimited piece of packagename is treated as a subpackage name and is subject to uniqueness rules.
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37956998
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перевести бы еще нормально...
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37956999
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя вроде и Яндекс нормально перевел...
ЯндексКаждый Caché класс имеет имя, которое должно быть уникальным в пределах данного пространства имен, в котором он описан.
Полное имя класса является строка, разделенная одного или более периодов, как в следующем примере: package.subpackage.subpackage.class .
Короткое имя класса является частью после заключительного периода, в течение этого строка, в части, предшествующий последним периода является именем пакета.
Каждый период-с разделителями кусок имя пакета рассматривается как subpackage имя и подлежит уникальность правила.
...
Рейтинг: 0 / 0
Узнать классы пакета
    #37958000
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Google также хреново перевел...
GoogleКаждый класс Caché имеет имя, которое должно быть уникальным в пределах имен, в котором она определена.
Полное имя класса является строка, ограниченная одним или несколькими периодами, как в следующем примере: package.subpackage.subpackage.class.
Короткое имя класса является частью после окончательного срока, в течение этой строки; часть предшествующего заключительного периода является именем пакета.
Каждый период, разделенных кусок имя_пакета рассматривается как подпакет имя и подлежит уникальность правил.
Учите английский - мозги не гнобить такими переводами.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Узнать классы пакета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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