Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Как писать в глобаль Каше простой текст ?  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2066
Доброго дня всем.

Хочу писать в некий глобаль простой текст.
Пользователь пишет в элемент <textarea>
на ВЕБ страницы и передает его содержимое на запись в глобал.
Если простой текст в одну строку, вроде все нормально:
^controlINC(20181101,1,1238,10,"11.30")=Test 1

Если с переводом строки:
^controlINC(20181101,1,1216,14,"20.30")=<<"Test1"_$C(10)_"Test2"_$C(10)_"Test3"_$C(10)_"Test4"_$C(10)_"Test5"_$C(10)>>

Если скопировать с какого то документа - вообще непонятно: ...
^controlINC(20181101,1,1210,10,"10.00")=<<"ам можеÑ"_$C(130)_" бÑ"_$C(139)_"Ñ"_$C(130)_"Ñ"_$C(140)_" необÑ"_$C(133)_"одимо измениÑ"_$C(130)_"Ñ"_$C(140)_" клÑ"_$C(142)_"Ñ"_$C(135)_" Windows 7. ТакаÑ"_$C(143)_" необÑ"_$C(133)_"одимоÑ"_$C(129)_"Ñ"_$C(130)_"Ñ"_$C(140)_" можеÑ"_$C(130)_" бÑ"_$C(139)_"Ñ"_$C(130)_"Ñ"_$C(140)_" вÑ"_$C(139)_"звана в Ñ"_$C(129)_"лÑ"_$C(131)_"Ñ"_$C(135)_"аÑ"_$C(143)_"Ñ"_$C(133)_": "_$C(10)_"Ð"_$C(146)_"Ñ"_$C(139)_" обновлÑ"_$C(143)_"еÑ"_$C(130)_"е

***Warning: String truncated !

Что неправильно ?

Спасибо
20 ноя 18, 09:42    [21738740]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2066
Поспешил немного...
То что последний - кириллица , видимо что-то с кодировкой.
Но все ровно, сколько байт можно писать текста ???
В GT.M я свободно пишу 1 Мгб (строка)
20 ноя 18, 09:52    [21738748]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2709
Valeriu,

Я так понимаю писать в глобалы без объектов хочешь?
не смог найти в документации ограничение на значение глобала, но насколько я помню, записать можно много.

Valeriu
***Warning: String truncated !
Насколько я помню, такое сообщение показывается в портале управления. И относится только к отображению. Сами данные на месте, и никуда не делись.
20 ноя 18, 11:09    [21738819]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2066
DAiMor
Я так понимаю писать в глобалы без объектов хочешь?

Да. Я сторонник классического М.
Что пишу, стараюсь без изменения переносить код на другие М системы.
20 ноя 18, 12:30    [21738941]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1565
Valeriu,

Long Strings

Появились, ЕМНИП, начиная с Cache 2007.1. Вплоть до 2009.(?) по умолчанию они были отключены. "String truncated" - возможно, сработало ограничение редактора глобалов, которым вы пользовались.
20 ноя 18, 12:46    [21738977]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1565
Добавлю к этому, что ограничение длины строки в Cache определено в символах, в отличие от GT.M. Поэтому юникодовская строка Cache в 1 мегасимвол может не вписаться в ограничение 1 MByte в GT.M. Безопасная длина для обеих СУБД - 512 килосимволов, при условии, что нет символов с кодами UTF-8 длиннее 2 байт.
20 ноя 18, 13:09    [21739021]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
logist
Member

Откуда: InterSystems
Сообщений: 269
Valeriu,

Насчет кодировки -- нужно перекодировать кириллицу из UTF-8 при сохранении

set ^controlINC(20181101,1,1210,10,"10.00")=$zcvt(str,"I","UTF-8")
21 ноя 18, 01:34    [21739618]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13202
Как по-мне, так лучше текст "нарубить" кусками определенной длины и записать в подузлы...
^controlINC(20181101,1,1238,10,"11.30",1)=Test 1_1
^controlINC(20181101,1,1238,10,"11.30",2)=Test 1_2
...
^controlINC(20181101,1,1238,10,"11.30",N)=Test 1_N
21 ноя 18, 07:51    [21739661]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3808
krvsa,

вы прямо заново изобретаете потоки. А вообще в таком хранении, кроме очевидного плюса в возможности хранить большие объемы данных есть и огромный минус в проблеме с их обработкой
21 ноя 18, 08:51    [21739683]     Ответить | Цитировать Сообщить модератору
 Re: Как писать в глобаль Каше простой текст ?  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13202
Блок А.Н.
вы прямо заново изобретаете потоки.

Отнюдь...
Просто смотрю примеры, что приведены выше. Там нет такого хранения, но есть описание как настраивать Кащей, дабы влезло много данных.
Поскольку данных может быть много... И СУБД может быть не только Кащей, изменить способ хранения будет более уместным решением.

Блок А.Н.
А вообще в таком хранении, кроме очевидного плюса в возможности хранить большие объемы данных есть и огромный минус в проблеме с их обработкой

Обрабатывать дольшие объемы данных уже проблема. Т.ч. не так уже и страшно...
21 ноя 18, 13:53    [21740037]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить