Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Поспрошаю умных людей... Как получить информацию об индексах? Т.е. есть имя класса - нужно получить список индексов... ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 08:57 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
krvsaПоспрошаю умных людей... Как получить информацию об индексах? Т.е. есть имя класса - нужно получить список индексов... ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT Думаю, надо пробежаться по метаданным класса и узнать у каких свойств стоит тип INDEX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:20 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Set cdef=##class(%ClassDefinition).%OpenId("classname") For i=1:1:cdef.Indices.Count() {w cdef.Indices.GetAt(i) } тут еще можно просмотреть %Library.IndexDefinition For i=1:1:cdef.Properties.Count() { w cdef.Properties.GetAt(i).Type, !} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:32 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Это и я понял! Вопрос как? Вот так не желает... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:33 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
LenRover , спасибо! А как потом работать со свойствами индекса? Например узнать дескрипшен и по каким свойствам класса он (индекс) создавался ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:35 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
LenRoverSet cdef=##class(%ClassDefinition).%OpenId("classname") For i=1:1:cdef.Indices.Count() {w cdef.Indices.GetAt(i) } тут еще можно просмотреть %Library.IndexDefinition For i=1:1:cdef.Properties.Count() { w cdef.Properties.GetAt(i).Type, !} вот названия индексов For i=1:1:cdef.Indices.Count() {w cdef.Indices.GetAt(i).Name } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:36 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Ясненько! Благодарю. ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:39 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
А SQLно никак? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:48 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
А вот мне нравится через глобалы. Кстати, как-то делал классы с маппингом на глобалы классов ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:51 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Не-е-е... Через глобалы точно не стану информацию брать. Только "классово" или SQL. Лично для меня SQL предпочтительнее... ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 10:53 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
даже не знаю... никогда не сталкивалась с необходимостью работы с метаданными через sql. Можно в принципе создать метод в классе типа ClassMethod cPut(Name As %String) As %Boolean [ SqlProc ], в который подавать название колонки, а далее средствами COSa вернуть true или flase (является ли индексом или нет). а в запросе, чтобы запустить метод: where ISS.forSql_cPut(cPut)=1 где ISS.forSql - класс где лежит метод а cPut - название метода.. не уверена, что вам это поможет.. но вдруг окажется полезным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:00 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
>Не-е-е... Через глобалы точно не стану информацию брать. Измена? М-щик не хочет брать данные из глобала? Сделайте маппинг, правда все равно ковырять глобалы придется. Но не вижу проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:05 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.>Не-е-е... Через глобалы точно не стану информацию брать. Измена? М-щик не хочет брать данные из глобала? Сделайте маппинг, правда все равно ковырять глобалы придется. Но не вижу проблемы. Совсем необязательно через глобалы. Достаточно средствамми COS - %ClassDefinition ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:09 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
>Совсем необязательно через глобалы. Достаточно средствамми COS - %ClassDefinition И правда. Раньше не знал. Вот так приходится изобретать велосипед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:17 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Не знал, что они поддерживают SQL. А в каше 4 поддерживало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:19 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
krvsaА SQLно никак? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT Никак.... если только не выгрузить DDL и разобрать его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:20 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:24 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Измена? М-щик не хочет брать данные из глобала? Скорее настороженость/опасение Сегодня у них так... Потом вот эндак... Зачем рисковать? Про SQL понял... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 11:42 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
Если индекс делается по нескольким свойствам (это возможно?), то как имена свойств будут храниться в ocls.Indices.GetAt(i).Properties? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 12:35 |
|
||
|
Как получить информацию об индексах?
|
|||
|---|---|---|---|
|
#18+
krvsaЕсли индекс делается по нескольким свойствам (это возможно?), то как имена свойств будут храниться в ocls.Indices.GetAt(i).Properties? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT Да, это возможно. В этом случае индекс прописывается в виде Index IndProp On (Prop1, Prop2); и чтобы получить их имена: EZH>Set cdef=##class(%ClassDefinition).%OpenId("test.class") EZH>For i=1:1:cdef.Indices.Count() {w cdef.Indices.GetAt(i).Properties, ! } Name Prop1,Prop2 то есть, они просто через запятую выводятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=34783457&tid=1559220]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
201ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 559ms |

| 0 / 0 |
