Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание глобала / 25 сообщений из 25, страница 1 из 1
17.09.2010, 18:11
    #36852936
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Объясните, пожалуйста. Какие функции используются для создания глобалов. Как задать тип и форму глобала. Н-р: мне нужен глобал, в каждом узле которого будет разбиение на поля ID, Name, Nazvanie ну и др. Это не подузлы, а именно иформация самого узла. Как правильно задать типы этих полей. Может не много не понятно. Но по другому свою мысль выразить не могу.
Заранее спасибо.
...
Рейтинг: 0 / 0
17.09.2010, 19:26
    #36853083
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
На уровне глобалов нет никаких данных о типах. Что укажите то и сохранится.

Глобалы отличаются от локальных переменных только наличием символа крышки ^, абсолютно все операции над локальными переменными и глобалами идентичны.
Код: plaintext
1.
2.
3.
4.
5.
/// запись в локальную переменную array( 1 ) (то есть массив с индексом  1 ) списка из строк  "ID", "Name", "Nazvanie" 
set array( 1 )=$LB("ID", "Name", "Nazvanie")

/// запись в глобал SomGlobal с индексом  1  списка из строк  "ID", "Name", "Nazvanie" 
set ^SomGlobal( 1 )=$LB("ID", "Name", "Nazvanie")
Какой номер в списке соответствует какому полю определяете самостоятельно

В вашем же случае скорее всего нужно создать класс с двумя полями
Код: plaintext
1.
2.
3.
4.
5.
6.
Class SomeClass Extend %Persistent 
{
Property Name As %String;

Property Nazvanie As %String;
}

При компиляции класса у вас автоматически назначается поле ID - соответствующее номеру записи и автоматически формируется таблица SomeClass и можно писать
Код: plaintext
1.
select Name,Nazvanie from SomeClass where ID= 1 

Единственно что имя глобала где реально хранятся данные записей класса будет назначен автоматически (скорее всего ^SomeClassD в данном примере), хотя если открыть структуру хранения можно задать то имя глобала которое хочется/
...
Рейтинг: 0 / 0
24.09.2010, 11:55
    #36864372
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ptn спасибо, пригодилось :)
...
Рейтинг: 0 / 0
24.09.2010, 12:45
    #36864594
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Можно ли в глобале как то назвать части узлов.
Н-р: $LB("7","Волков Ю.Г., Мостовая И.В.","Социология")

"7" - ID
"Волков Ю.Г., Мостовая И.В." - Author
"Социология" - Name

Как им присвоить это имена, чтобы в SQL запросах указывать вывод именно данных значений (н-р только ID).
...
Рейтинг: 0 / 0
24.09.2010, 14:21
    #36864929
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Уже не надо Все нашла.. 8)
...
Рейтинг: 0 / 0
24.09.2010, 15:53
    #36865247
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Если глобал существует, то удалить его, или очистить от данных. Как можно это сделать? Нужно перезаписать глобал.
...
Рейтинг: 0 / 0
24.09.2010, 16:38
    #36865369
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika,

K ^GlobalName
...
Рейтинг: 0 / 0
24.09.2010, 16:41
    #36865373
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Эта команда убьет Ваш глобал
...
Рейтинг: 0 / 0
24.09.2010, 16:44
    #36865379
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Можно удалить один узел с подузлами, например
k ^myglobal(key)

можно просто перезатереть узел глобала
s ^myglobal(key)="новые данные"

можно скопировать глобалл или узел глобала в другой глобал или узел глобала (с подузлами)
m ^global1(key1,key2)=^global0(key0)
...
Рейтинг: 0 / 0
24.09.2010, 19:04
    #36865608
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Документация Using Caché Globals .
...
Рейтинг: 0 / 0
28.09.2010, 08:32
    #36869138
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
П.С.М. , Блок А.Н. спасибо, попробую.

VadimF спасибо за ссылку, только проблема в том, что англ. яз. я знаю плохо :) Потому и спрашиваю ))
...
Рейтинг: 0 / 0
28.09.2010, 10:06
    #36869253
sedhfgtesrthesr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika,

Российское представительство IS ленится :)
Давно могли бы перевести документашку....а раз не переводят, значит не видят перспектив для развития в России.
...
Рейтинг: 0 / 0
28.09.2010, 10:22
    #36869294
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
sedhfgtesrthesrРоссийское представительство IS ленится :)
Да уж

sedhfgtesrthesrДавно могли бы перевести документашку....а раз не переводят, значит не видят перспектив для развития в России.

Ну да, перспектив нету, только вот используют его все чаще и чаще :)
...
Рейтинг: 0 / 0
28.09.2010, 10:56
    #36869391
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Мне тоже раньше сильно не хватало русской документации, да и сейчас иногда хочется.
Но проблема в том, что переводят документацию обычно переводчики, а не программисты,
причем даже с плохим знанием языка иногда проще понять английскую версию, чем переведенную русскую. Да и вообще английский язык, по-моему, давно стал стандартом технической документации в программировании, т.е. отсутствие русской документации уже вариант нормы, а не дефект.

Иногда хочется русскоязычной, но не документации, а скорее в области общих слов, идеологии, учебников, руководств. Так как там текста гораздо больше и некоторые ньюансы на буржуйском можно пропустить. Из очень хороших русских документов можно упомянуть руководство по администрированию.
...
Рейтинг: 0 / 0
28.09.2010, 12:57
    #36869750
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Блок А.Н.Но проблема в том, что переводят документацию обычно переводчики, а не программисты,
причем даже с плохим знанием языка иногда проще понять английскую версию, чем переведенную русскую.
Но нам таки даже сравнить не с чем...
Благо есть русская документация по MSM 4.14, с нее и начинают изучение молодые специалисты...
...
Рейтинг: 0 / 0
28.09.2010, 16:48
    #36870514
sedhfgtesrthesr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika
Ну да, перспектив нету, только вот используют его все чаще и чаще :)

Неправда.

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

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

Наличие русской документации не отменяет английскую. Сам пользуюсь только английскими версиями почти всех продуктов, НО, на японском и китайском ведь есть :)
...
Рейтинг: 0 / 0
29.09.2010, 09:36
    #36871499
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Задам вопрос в этой же теме.
Есть такой вот код.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
K ^Test.PrimGlD
	k ^CacheTempMorpho ;($j)
	if $g(init)# 2  {
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict("C:\Temp\folder\morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms( 1000 )
		k ^DictNew
		i 'rc 
		{
		i 'rc { d $system.OBJ.DisplayError(rc) } 
		q
		}
		w !,"Словари загружены"
	}
	if $g(init)\ 2 # 2  {
		s rc=##class(Test.PrimGl).%KillExtent() i 'rc 
		{
		i 'rc { d $system.OBJ.DisplayError(rc) } 
		q
		}
		w !,"Хранилище документов очищено"
	}

/*код создания глобала*/

Никак не могу понять, работает он или нет. Компилится без ошибок.

Это первоначальный варинт.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
ftload(init,folder) ; init# 2  - перезагружает словари ; init\ 2 # 2  - перезагружает документы. Т.е.:
			 ;  0  - ничего не делает со словарями, добавит в БД документы;
			 ;  1  - перезагрузит словари и добавит в БД документы, 
			 ;  2  - сотрет старое содержимое БД документов и добавит в БД документы
			 ;  3  - перезагрузит словари, сотрет старое содержимое БД документов и добавит в БД документы
			 ;
			 ; folder - каталог, где хранятся файл словаря morphs.mrd и тексты для загрузки в ft.doc
			 ;
			 ; NB! ^CacheTempMorpho стирается перед прогоном всегда! (он заполняется, если #%Text.Russian.DEBUG= 1 )
	i $g(folder)="" w !,"Каталог для загрузки словаря и/или текстов не задан" q
	s:$e(folder,$l(folder))'="\" folder=folder_"\"
	k ^CacheTempMorpho ;($j)
	if $g(init)#2 {
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict(folder_"morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms(1000)
		k ^DictNew
		i 'rc g fterrex
		w !,"Словари загружены"
	}
	if $g(init)\ 2 # 2  {
		s rc=##class(ft.doc).%KillExtent() i 'rc g fterrex
		w !,"Хранилище документов очищено"
	}
fterrex
	i 'rc { d $system.OBJ.DisplayError(rc) } 
	q 
/*код создания глобала*/
...
Рейтинг: 0 / 0
29.09.2010, 10:21
    #36871585
sedhfgtesrthesr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika,

проблема то в чем, драгоценная вы наша?
OstikaНикак не могу понять, работает он или нет. Компилится без ошибок.
окаймите ваш код в функцию и вызовите из терминала, если контекст не сильно тяжелый, если требуется запускать в контексте - то проверьте, получаете ли вы ожидаемый результат или нет (например, через те же глобалы). Этот процесс называется отладка ;)

ps:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
i 'rc 
{
i 'rc { d $system.OBJ.DisplayError(rc) } 
q
}
...
это шедевр :)

psps:
К теме тут относится только этот кусочек кода:
Код: plaintext
/*код создания глобала*/
...
Рейтинг: 0 / 0
29.09.2010, 10:30
    #36871606
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika,

В архиве , из которого был взят код, приведённый Вами выше, есть файл 1readme.htm .
В нём есть инструкции по проверке полнотекстового поиска для русского языка.
...
Рейтинг: 0 / 0
29.09.2010, 10:39
    #36871627
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
servit
так он работает вместе с теми файла, которые есть в архиве. А мне надо его переделать под себя. Т.е. часть программы перенести в функцию.
...
Рейтинг: 0 / 0
29.09.2010, 10:50
    #36871658
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Насколько помню, код достаточно универсален, он загружает в БД документы из всех текстовых файлов, помещенных в папку folder:
Код: plaintext
1.
2.
3.
	d $zu( 68 , 40 , 1 )
	s t0=$zh,bc= 0 ,mask=folder_"*.txt"
	f  s file=$zsearch(mask) s mask="" q:file=""  s rc=$$ftpar(file) i 'rc u $p w !,rc q
Странно, что вы этого не заметили.
...
Рейтинг: 0 / 0
29.09.2010, 10:55
    #36871677
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Alexey MaslovСтранно, что вы этого не заметили.

Мне эта часть не нужна, у меня идет загрузка из глобала в глобал. Нужно именно морфологичекую обработку провести, а для этого нужен файл morphs.mrd. Поэтому и получается, что все работает и загружается, а нужного результата нет. Мне только этот кусок из программы нужен.
...
Рейтинг: 0 / 0
29.09.2010, 10:57
    #36871684
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Ostika

Если Вы используете свой формат файла грамматического словаря, то Вам нужно смотреть метод LoadDict в классе %Text.Russian .
...
Рейтинг: 0 / 0
29.09.2010, 11:02
    #36871696
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Тогда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	k ^CacheTempMorpho ;($j)
		s rc=##class(%Text.Russian).DropDictionary()
		i rc s rc=##class(%Text.Russian).LoadDict(folder_"morphs.mrd") ;именно в таком порядке! ;AM01
		i rc s rc=##class(%Text.Russian).ExcludeCommonTerms( 1000 )
		k ^DictNew
		i 'rc g fterrex
		w !,"Словари загружены"
И больше вам ничего не нужно :)
Если не секрет, для чего собираетесь использовать морфологическую обработку?
...
Рейтинг: 0 / 0
29.09.2010, 16:21
    #36872689
Ostika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание глобала
Alexey MaslovИ больше вам ничего не нужно
Спасибо, попробую :)

Alexey MaslovЕсли не секрет, для чего собираетесь использовать морфологическую обработку?
Нужно сделать поиск на сайте. А так как с Каше я не так давно работаю а точнее только начала, то вот приходится по крупицам собирать :)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание глобала / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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