powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как получить все глобалы с фиксированным вторым индексом?
5 сообщений из 5, страница 1 из 1
Как получить все глобалы с фиксированным вторым индексом?
    #35498976
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашёл в букваре пример извлечения глобалов, суть которого выражает мой тестовый пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TestOrder
 s x1= 123 ,x2=""
 f {
 s x2=$O(^Index(x1,x2))
 q:x2=""
 w !,x2
 }
 q

Тут получены все индексы второго уровня с фиксированным первым...
Я пытаюсь решить обратную задачу: как найти все индексы первого уровня, при известном индексе второго? И вообще можно ли это сделать вообще, с вычислительными затратами не большими чем в приведённом примере. В моём тестовом примере на массиве в 10 млн записей получается почти мгновенный ответ...
По сути вопрос сводится к тому есть ли функция, возвращающая предыдущий индекс, а не следующий, как ф-я $O??
...
Рейтинг: 0 / 0
Как получить все глобалы с фиксированным вторым индексом?
    #35499028
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное только так...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TestOrder
 s x1="",x2= 123 
 f {
    s x1=$O(^Index(x1))
    q:x1=""
    q:'$d(^Index(x1,x2))
    w !,x1
 }
 q

Т.е. если нет других глобалов нужен проход по всем индексам первого уровня...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Как получить все глобалы с фиксированным вторым индексом?
    #35499057
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotесть ли функция, возвращающая предыдущий индекс, а не следующий, как ф-я $O??
Возможно тут неправильное понимание работы функции $o()...
автор $ORDER
Определяет следующий или предыдущий индекс в сортирующей последовательности для заданной индексированой переменной

Т.е. вы задали индексированную переменную

Код: plaintext
s name=$na(^Index(x1))

А вам выдается следующий или предыдущий индекс в сортировачной последовательности...
...
Рейтинг: 0 / 0
Как получить все глобалы с фиксированным вторым индексом?
    #35499222
Ahil79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaНаверное только так...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TestOrder
 s x1="",x2= 123 
 f {
    s x1=$O(^Index(x1))
    q:x1=""
    q:'$d(^Index(x1,x2))
    w !,x1
 }
 q

Т.е. если нет других глобалов нужен проход по всем индексам первого уровня...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Прикольный пример. Всего один прогон цикла по первому индексу. Только цикл закончится помоему сразу полсле того как небудет найден второй индекс (^Index(1,1...11))
...
Рейтинг: 0 / 0
Как получить все глобалы с фиксированным вторым индексом?
    #35499384
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Поторопился... Вот так нужно...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TestOrder
 s x1="",x2= 123 
 f {
    s x1=$O(^Index(x1))
    q:x1=""
    w:$d(^Index(x1,x2)) !,x1
 }
 q
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как получить все глобалы с фиксированным вторым индексом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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