powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / тип данных для длинного текста
23 сообщений из 23, страница 1 из 1
тип данных для длинного текста
    #37983291
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какой тип данных лучше использовать для хранения длинного текста?
%string не вариант там ограничение вроде в 255 символов
или можно обойти это ограничение?
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37983403
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ограничение на длину текста наверняка можно и больше но если вы нет необходимости иметь возможность поиска по нему, можно использовать поля типа %Stream или Multidimensional
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37983416
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22, зависит от того, что вы собираетесь с ним потом делать
Код: vbnet
1.
Property LongText as %String(MAXLEN=1000, TRUNCATE=1);

%String , Long string support , %Text , %Stream.GlobalCharacterSearchable , %Stream.FileCharacter
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37983901
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22,

Можете и в XDATA блоке похранить.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37983968
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгенийстудент22,

Можете и в XDATA блоке похранить.

Пример
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37984744
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений, покажите пожалуйста пример работы, а то с виду кажется, что это как синглтон, один текст на весь класс
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37984764
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
текст надо хранить в базе, в неком классе, в котором есть свойство описание (произвольный текст).
ну и просто отобразить на тех же csp или zen страничках (не используя запрос по поиску текста), просто отобразить.
что лучше использовать для такой задачи? %Stream.FileCharacter? или можно развернуть в %string maxlen до бесконечности?
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37984792
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22,

%String до бесконечности не растянется, предел большой, но он есть (с ходу не вспомню какой). Мы у себя используем %GlobalCharacterStream для таких случаев.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37984815
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, предел 32К, связан с ограничениями самой каше.
Не знаю, что будет, если разрешить длинные строки, возможно можно и больше.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37985222
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22текст надо хранить в базе, в неком классе, в котором есть свойство описание (произвольный текст).
ну и просто отобразить на тех же csp или zen страничках (не используя запрос по поиску текста), просто отобразить.
что лучше использовать для такой задачи?
Судя по постановке, %Stream.FileCharacter вполне подходит. Но проще будет работать со %String.
У описания должны быть какие-нибудь предварительные ограничения. Как описание будет попадать в базу?
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37987461
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

на zen страничке будет форма привязанная к controller, в форме будет textarea с databinding="свойство, с неограниченной длинной".
Смогу ли я, так записывать введенный текст в поле с типом данных %Stream.FileCharacter?
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37991054
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
включил Enabling Long String Operations,
пока не знаю будет ли отображать 3 600 000 символов простой %String
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37991108
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22, In Test We Trust ;)
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37991272
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12 000 символов хранит, больше не нужно
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37991321
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22,
http://docs.intersystems.com/cache20122/csp/docbook/DocBook.UI.Page.cls?KEY=GORIENT_ch_serverconfig#GORIENT_serverconfig_long_strings As noted earlier, Caché allocates a fixed amount of memory to hold the results of string operations. If a string expression exceeds the amount of memory allocated, a <MAXSTRING> error results.
By default, this limit is approximately 32 KB .
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37992047
neznau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент2212 000 символов хранит, больше не нужно
12тыс должно было и без разрешения "длинных строк" хранить.
Вам уже писали про MAXLEN=...
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37993116
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
>w $L(a)
32767
>s a=a_"a"
 
S a=a_"a"
^
<MAXSTRING>


Но на практике, при работе с zen, проблемы начинаются после 15000 или 20000 символов (проверял на Cache 2007 и 2009). В подробности вдаваться не стал, просто при использовании очень длинных строк ушел от использования %String на %GlobalCharacterStream.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37993208
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.
Код: sql
1.
2.
3.
4.
5.
6.
7.
>w $L(a)
32767
>s a=a_"a"
 
S a=a_"a"
^
<MAXSTRING>

Длинные строки точно включены?#include %msql

s str=$tr($j("",$$$MaxLocalLength)," ","Ş")
w "Длина строки = ",$l(str),! 

Результат:
Код: plaintext
Длина строки = 3641144
С версии 2012.2 длинные строки включены по умолчанию.

студент22 ,

Поэтому для 12000 символов Вам должно хватить простой строки.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37993231
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitП.С.М.
Код: sql
1.
2.
3.
4.
5.
6.
7.
>w $L(a)
32767
>s a=a_"a"
 
S a=a_"a"
^
<MAXSTRING>

Длинные строки точно включены?
Да нет, конечно :) Это я привел к тому, чтобы показать, что строка и так вмещает больше 12000 символов.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37993237
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М. Но на практике, при работе с zen, проблемы начинаются после 15000 или 20000 символов ... Возможно, если используются объекты для хранения, то ограничение в 32К будет на строку хранения, в которую могут помещаться несколько полей (+служебная упаковка $list), поэтому хранимое значение свойства в объекте будет меньше 32К.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37993322
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shu,

возможно, но мне было не интересно, да и некогда разбираться "как? да почему?". Да и задача была снять ограничения на размер хранимого текста. Вот и заиспользовал %GlobalCharacterStream вместо %String. Пока жалоб не было :)
servit С версии 2012.2 длинные строки включены по умолчанию.
Дополню: только если выполняется "чистая" установка.
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37994857
студент22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
убрал разрешение на длинные строки.
тестировал на zen свойство с MAXLEN = 32000, сохраняет все 32к символа

Большое спасибо всем что помогли разобраться с проблемой
...
Рейтинг: 0 / 0
тип данных для длинного текста
    #37995041
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студент22, 32K '= 32000
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
TestMax
 s $ZT="errHandler", file=""
 for i=32000:1:32768 {
  s file=##class(%File).TempFilename("txt") o file:"WNU" u file w ?i c file
  w !,i,": Ok"
 }
 Q
errHandler   s $ZT="" c file w !,i,":",$ZE s $ZE="" Q
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / тип данных для длинного текста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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