powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Максимальная длина строки узла глобала
12 сообщений из 12, страница 1 из 1
Максимальная длина строки узла глобала
    #35740808
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно поменять максимальную длину строки узла глобала?
Сейчас у меня строка test содержит 507 символов, при попытке выполнить
s ^a(test)=1 вываливается ошибка <SUBSCRIPT>.
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35740847
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=,

версию Cache использовать, если не ошибаюсь выше 2008.1
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35741024
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предельная длина строки в индексе зависит еще и от того, печатные там символы или нет.
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35866817
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor=Dimon=,

версию Cache использовать, если не ошибаюсь выше 2008.1

И как установить длину узла глобала больше 500 символов?
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35867272
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
определить суммарную длину индексов можно так
Код: plaintext
1.
2.
3.
s n= 0  
f i= 1 : 1 :$QL(b) s n=n+$L($QS(b,i))
zw n
где, b - это ваш глобал, например $NAME(^a(1,2,3,4))

но проблема больше заключается в том, что все зависит от содержимого индекса, если он содержит непечатаемые символы с кодом до 32 то каждый такой символ занимает в 2 раза больше места
цифры от 1 до 9 наоборот в 2 раза меньше
некоторые спец.символы в.т.ч и цифра 0 занимают чуть больше места чем остальные знаки
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35867312
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к примеру этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
tmp 
 n 
 s c=- 1 
loop 
 s $zt="err"
 s c=$G(c)+ 1 
 g:c> 254  end
 s str=""
 s a=$NA(^a) 
 f i= 1 : 1 : 1000  {
	 s str=str_$C(c) 
	 s @a@(str)=i 
	 s n= 0  
 }
 g loop
end
 q
err
 s $zt=""
 s ^b(c)=i
 w !,c," = "_i
 g loop
 q

делает глобал ^a с индексом 1 уровня и поиск максимальной длины для разных символов
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35872963
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,

А как разрешить в SQL индексах использовать длину узла больше 500 символов?
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35873042
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а никак, либо менять индексы в классах

только переходом на более свежую версию Cache, там с 2008 какой-то версии вроде как обещали увеличить длину узлов глобала до 32кбайт
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35873087
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,

перешел на 2008.2 и как изменить?
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35873372
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче я обманул или меня обманули
поставил себе и версию 2008.2 и версию 2009.1 FT1 для теста
на обеих версиях такое же ограничение на длину узлов глобала
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35873682
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor , обмана никакого и небыло... В новых версиях Кащея стало можно увеличить размер значения, а не "размер" имени переменной (не узлов)...
Ограничение на имя 255 символов никто не снимал. Мало того! Есть такие "толстые" символы (например $c(31)) которые эту длинну еще сильнее уменьшают.
...
Рейтинг: 0 / 0
Максимальная длина строки узла глобала
    #35873739
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Как можно поменять максимальную длину строки узла глобала?
Сейчас у меня строка test содержит 507 символов, при попытке выполнить
s ^a(test)=1 вываливается ошибка <SUBSCRIPT>.
Почему это так описано в Subscript Naming Conventions and Limits
В документации к версии 2008.2 помимо этого описан ещё и алгоритм "Determining the Maximum Length of a Subscript".

Например, следующий код отработает:
Код: plaintext
1.
2.
set N= 508  set a="a" for i= 2 : 1 :N set a=a_"a"
w $l(a),!
set ^a(a)= 1 
Код: plaintext
1.
2.
set N= 498  set a="a" for i= 2 : 1 :N set a=a_"a"
w $l(a),!
set ^a1234567890(a)= 1 
Если хоть на один символ больше - уже нет.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Максимальная длина строки узла глобала
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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