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

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

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

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

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

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

на zen страничке будет форма привязанная к controller, в форме будет textarea с databinding="свойство, с неограниченной длинной".
Смогу ли я, так записывать введенный текст в поле с типом данных %Stream.FileCharacter?
...
Рейтинг: 0 / 0
10.10.2012, 08:44
    #37991054
студент22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
включил Enabling Long String Operations,
пока не знаю будет ли отображать 3 600 000 символов простой %String
...
Рейтинг: 0 / 0
10.10.2012, 09:39
    #37991108
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
студент22, In Test We Trust ;)
...
Рейтинг: 0 / 0
10.10.2012, 11:11
    #37991272
студент22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
12 000 символов хранит, больше не нужно
...
Рейтинг: 0 / 0
10.10.2012, 11:34
    #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
10.10.2012, 16:19
    #37992047
neznau
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
студент2212 000 символов хранит, больше не нужно
12тыс должно было и без разрешения "длинных строк" хранить.
Вам уже писали про MAXLEN=...
...
Рейтинг: 0 / 0
11.10.2012, 10:25
    #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
11.10.2012, 11:06
    #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
11.10.2012, 11:13
    #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
11.10.2012, 11:14
    #37993237
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
П.С.М. Но на практике, при работе с zen, проблемы начинаются после 15000 или 20000 символов ... Возможно, если используются объекты для хранения, то ограничение в 32К будет на строку хранения, в которую могут помещаться несколько полей (+служебная упаковка $list), поэтому хранимое значение свойства в объекте будет меньше 32К.
...
Рейтинг: 0 / 0
11.10.2012, 11:40
    #37993322
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных для длинного текста
ser_shu,

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

Большое спасибо всем что помогли разобраться с проблемой
...
Рейтинг: 0 / 0
12.10.2012, 10:22
    #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
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / тип данных для длинного текста / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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