|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Пробую создать классы на основе глобалов. Пока структура была простая, все получалось. А теперь чуть сложнее и выходит ошибка Код: plaintext
^book(17,"at",2)="Петров С.А." ^book(17,"at",3)="Сидоров Ю.Н." ^book(17,"av")=0 ^book(17,"nm")="Черный человек" ^book(17,"yr")=1995 ^book(18,"at",1)="Иванова Т.Ю." ^book(18,"at",2)="Ладыгина И.А." ^book(18,"av")=1 ^book(18,"nm")="Энциклопедия кошек" ^book(18,"yr")=2009Класс книг:Class Lena.Book Extends %Persistent [ StorageStrategy = BookStorage ] { Relationship ID As Lena.Authors [ Cardinality = children, Inverse = BkId ]; Index BookId On ID [ IdKey, PrimaryKey, Unique ]; Property Name As %String; Property Year As %String; Property Num As %Integer; }Класс авторов:Class Lena.Authors Extends %Persistent [ StorageStrategy = AuthorStg ] { Relationship BkId As Lena.Book [ Cardinality = parent, Inverse = ID ]; Property Name As %String; Property Cnt As %Integer; Index AuthorId On (BookId, Cnt) [ IdKey, PrimaryKey, Unique ]; }Способ хранения авторов:<Storage name="AuthorStg"> <SequenceNumber>4</SequenceNumber> <SQLMap name="AuthorMap"> <ConditionalWithHostVars></ConditionalWithHostVars> <Data name="Name"/> <Global>^book(BkId,"at")</Global> <PopulationType>full</PopulationType> <Subscript name="1"> <Expression>{Lena.Books.Id}</Expression> </Subscript> <Subscript name="2"> <Expression>{Cnt}</Expression> </Subscript> <Type>data</Type> </SQLMap> <Type>%CacheSQLStorage</Type> </Storage>Помогите разобраться, что я не так делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 14:41 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Шваров Евгений, по ней и пыталась сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 15:56 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Переделала способ хранения, больше похоже на то, что в примере, но все равно на цикл ругается.<Storage name="AuthorStg"> <SequenceNumber>4</SequenceNumber> <SQLMap name="AuthorMap"> <ConditionalWithHostVars></ConditionalWithHostVars> <Data name="Name"/> <Global>^book</Global> <PopulationType>full</PopulationType> <Subscript name="1"> <Expression>{Lena.Books.Id}</Expression> </Subscript> <Subscript name="2"> <Expression>"at"</Expression> </Subscript> <Subscript name="3"> <Expression>{Cnt}</Expression> </Subscript> <Type>data</Type> </SQLMap> <Type>%CacheSQLStorage</Type> </Storage> ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 16:05 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl, Эта ошибка не из-за Storage. Какое отношение между Book и Authors? Одной книге соответствует много авторов и каждому автору соответствует одна книга? Странно, что в классе Book, свойство ID — коллекция авторов, является IdKey. Может быть, вам нужно создать отдельное свойство для списка авторов?:Relationship Authors As Lena.Authors [ Cardinality = children, Inverse = BkId ]; Index BookId On ID [ IdKey, PrimaryKey, Unique ]; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 16:21 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Спасибо. Александр КобловКакое отношение между Book и Authors? Одной книге соответствует много авторов и каждому автору соответствует одна книга? Да, один ко многим отношение. Странно, что в классе Book, свойство ID — коллекция авторов, является IdKey. Может быть, вам нужно создать отдельное свойство для списка авторов?:Relationship Authors As Lena.Authors [ Cardinality = children, Inverse = BkId ]; Index BookId On ID [ IdKey, PrimaryKey, Unique ];Ага. Появилась куча других ошибок. )) После исправления кучи осталось: Код: plaintext 1.
Что-то совсем непонятно, что тут имеется в виду. Классы при этом скомпилировались, но при попытке запроса ругаются, что возникла ошибка при компиляции класса Lena.Book. Может быть, я неправильно поняла смысл отношений... Автор задается ID книги,"at",номером автора. Мне казалось, что отношение должно ссылаться на ID книги. Типа foreign key. А тут оно сослалось вообще на что-то несуществующее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 16:49 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl , РешениеLena.BookClass Lena.Book Extends %Persistent [ StorageStrategy = BookStg ] { Relationship Authors As Lena.Authors [ Cardinality = children, Inverse = Book ]; Property Name As %String; Property Year As %String; Property Num As %Integer; <Storage name="BookStg"> <ExtentSize>100000</ExtentSize> <SequenceNumber>5</SequenceNumber> <SQLMap name="data"> <Data name="Name"> <Node>"nm"</Node> </Data> <Data name="Num"> <Node>"av"</Node> </Data> <Data name="Year"> <Node>"yr"</Node> </Data> <Global>^book</Global> <Subscript name="1"> <Expression>{ID}</Expression> </Subscript> <Type>data</Type> </SQLMap> <StreamLocation>^Lena.BookS</StreamLocation> <Type>%CacheSQLStorage</Type> </Storage> } { Relationship Book As Lena.Book [ Cardinality = parent, Inverse = Authors ]; Property Name As %String; Property Cnt As %Integer; Index AuthorId On (Book, Cnt) [ IdKey ]; <Storage name="AuthorStg"> <ExtentSize>100000</ExtentSize> <SequenceNumber>5</SequenceNumber> <SQLMap name="data"> <Data name="Name"/> <Global>^book</Global> <Subscript name="1"> <Expression>{Book.ID}</Expression> </Subscript> <Subscript name="2"> <Expression>"at"</Expression> </Subscript> <Subscript name="3"> <Expression>{Cnt}</Expression> </Subscript> <Type>data</Type> </SQLMap> <StreamLocation>^Lena.AuthorsS</StreamLocation> <Type>%CacheSQLStorage</Type> </Storage> } Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
2 Rows(s) Affected statement prepare time: 0.1370s, elapsed execute time: 0.0423s. --------------------------------------------------------------------------- USER>>select * from Lena.Authors 2. select * from Lena.Authors BookIDCntName1717||11Иванов А.П.1717||22Петров С.А.1717||33Сидоров Ю.Н.1818||11Иванова Т.Ю.1818||22Ладыгина И.А. 5 Rows(s) Affected statement prepare time: 0.1219s, elapsed execute time: 0.0004s. --------------------------------------------------------------------------- Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 16:49 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
servit, Спасибо большое. Буду разбираться, что не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 16:55 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl, надеюсь, что более опытные товарищи ещё расскажут вам о том, что реализовывать отношение 1:M в виде "parent-child" в Cache' не следует никогда . Хуже будет, если этому научит жизнь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 18:24 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslov, Прям таки никогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 18:43 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Блок А.Н., про то, почему "нельзя", написано много, в том числе на этом форуме. Вот хороший пример от иностранных коллег . В двух словах: медленный поиск по "child"ам, если "parent"ы хорошо "набиты данными". Если кому-то нужен более подробный пересказ, пишите )) Будет интересно, если Вы напишете, когда "можно", и какие преимущества достигаются при этом перед "one-many". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 19:21 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslov, Например, parent - класс-пустышка, а child-история его изменений. Причем наиболее частым запросом будет "получить состояние объекта на ..." Преимущество - близкое хранение данных одного родителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 21:07 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
А вот схему как в стартовом посте я бы точно не рекомендовал. Раздувает глобал неимоверно. Класс на него лепить есть смысл только если данные уже есть и программы с ними работают. И для того, чтобы программы переписать на объекты\sql, а потом изменить структуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 06:18 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Блок А.Н. Класс леплю только для того, чтобы поучиться лепить классы. -)) Alexey Maslov А как правильно делать связь 1:M? Или это на уровне глобала надо было другую структуру делать? Заводить отдельный глобал ^authors(Id,BookId)="name"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 08:16 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Делаю класс выдачи книг. Связь много к многим. Опять на что-то непонятное мне ругается. Код: plaintext
Глобал, класс, хранение:Структура глобала:^lib(№читателя,№книги,датаВыдачи)=срок_$c(31)_датаВозврата ^lib(7,10,63314)="14"_$c(31)_"63389" ^lib(8,10,63389)="14"_$c(31)_"0" ^lib(9,12,63350)="30"_$c(31)_"0" ^lib(10,16,63389)="14"_$c(31)_"0" ^lib(10,19,63383)="16"_$c(31)_"0" { Property Rid As %String; ForeignKey Rdr(Rid) References Lena.Reader(Prkey); Property Bid As %String; ForeignKey Bk(Bid) References Lena.Book(BkInd); Property Dgive As %Date; Property limit As %Integer; Property Dtake As %String; }Хранение:<Storage name="Default"> <Data name="LibDefaultData"> <Value name="1"> <Value>%%CLASSNAME</Value> </Value> <Value name="2"> <Value>Rid</Value> </Value> <Value name="3"> <Value>Bid</Value> </Value> </Data> <DataLocation>^Lena.LibD</DataLocation> <DefaultData>LibDefaultData</DefaultData> <ExtentSize>100000</ExtentSize> <IdLocation>^Lena.LibD</IdLocation> <IndexLocation>^Lena.LibI</IndexLocation> <StreamLocation>^Lena.LibS</StreamLocation> <Type>%Library.CacheStorage</Type> </Storage> <Storage name="LibStrg"> <ExtentSize>100000</ExtentSize> <SequenceNumber>8</SequenceNumber> <SQLMap name="LibMap"> <Data name="Dtake"> <Delimiter>$c(31)</Delimiter> <Piece>2</Piece> </Data> <Data name="limit"> <Delimiter>$c(31)</Delimiter> <Piece>1</Piece> </Data> <Global>^lib</Global> <Subscript name="1"> <Expression>Reader.SSN</Expression> </Subscript> <Subscript name="2"> <Expression>Book.ID</Expression> </Subscript> <Subscript name="3"> <Expression>{Dgive}</Expression> </Subscript> <Type>data</Type> </SQLMap> <StreamLocation>^Lena.LibS</StreamLocation> <Type>%CacheSQLStorage</Type> </Storage>Все вроде бы аналогично авторам делаю:Property Cnt As %Integer; Index AuthorId On (Book, Cnt) [ IdKey ]; <Subscript name="3"> <Expression>{Cnt}</Expression> </Subscript>А тут:Property Dgive As %Date; <Subscript name="3"> <Expression>{Dgive}</Expression> </Subscript>Разница, что здесь индекс не завожу. Если завожу индекс вот так:Index LibId On (Rid, Bid, Dgive) [ IdKey ];Ругается: Код: plaintext
Если определяю RowId<RowIdSpec name="1"> <Field>Rid</Field> </RowIdSpec> <RowIdSpec name="2"> <Field>Bid</Field> </RowIdSpec> <RowIdSpec name="3"> <Field>Dgive</Field> </RowIdSpec>То вот такой ужас Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 09:47 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslov , "Никогда не говори никогда." "Всё хорошо в меру." Пошерстите системные хранимые классы и Вы найдёте множество примеров с использованием отношения parent-children:
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 10:52 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl , Совет: Один файл проекта (*.PRJ) со всеми классами (*.CLS) и данными (*.GBL) лучше длинной простыни с разрозненным неполным, а потому нерабочим, кодом. К тому же это сильно увеличивает как скорость ответа, так и шансы на само его наличие. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 10:53 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
servit, я, конечно, идиот, но нашла только как экспортировать проект в xml через студию и как экспортировать глобалы в формате *.gof через портал. Это оно или не то? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 12:03 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Спасибо, получилось :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 12:52 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girlА как правильно делать связь 1:M?One-many, [ как правило ], удобнее по многим причинам. Главная из них, пожалуй, в том, что при проектировании БД существует тенденция в превращении связей 1:M в M:N (возможно, вы читали об этом у классиков). Если изначально была допущена ошибка, разбить связь One-many на две One-many будет относительно несложно; с Parent-Child перелопачивать придётся намного больше. Midnight_girlИли это на уровне глобала надо было другую структуру делать? Заводить отдельный глобал ^authors(Id,BookId)="name"?У вас ведь тоже M:N :) поэтому лучше сразу, например, так: ^author(aid)=adata ^book(bid)=bdata ^ablink(aid,bid)="" Эта модель всё равно сильно упрощённая, т.к. не отслеживаются различные издания той же книги, переводы на другие языки и пр. Ну и как совершенно справедливо заметил А.Н.Блок, заниматься отображением глобалов в хранимые классы в новых проектах смысла нет, делайте сразу на классах. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 13:05 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl , Замените в Lena.Lib<Subscript name="1"> <Expression>Reader.SSN</Expression> </Subscript> <Subscript name="2"> <Expression>Book.ID</Expression> </Subscript> <Subscript name="3"> <Expression>Dgive</Expression> </Subscript>на<Subscript name="1"> <Expression>{Rid}</Expression> </Subscript> <Subscript name="2"> <Expression>{Bid}</Expression> </Subscript> <Subscript name="3"> <Expression>{Dgive}</Expression> </Subscript>Там же удалите лишнюю схему хранения Default. Ещё можете добавить SqlRowIdPrivate в Lena.Book. PS: Index BkInd On ID [ IdKey, PrimaryKey, Unique ]; //Unique здесь излишен . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 14:48 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
servit Спасибо огромное! Заработало! =)) Alexey Maslov меня на новой работе пока заставляют работать в терминале (учусь), просто наткнулась на статью на хабре про работу с глобалами через sql и решила попробовать. Раньше же oracle dba была -)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 15:24 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Midnight_girl... меня на новой работе пока заставляют работать в терминале...Жёстко, но может и правильно, ибо "все великие дела творятся в командной строке". Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 16:43 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Здесь: чем отличается Один-ко-Многим и Родитель-Потомок... http://lusindane.at.tut.by/files/object09.html До сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно. Впрочем, то же самое делают и разработчики, использующие реляционные СХОД, в своих многочисленных "фреймворках"))... В последнем, который я видел, используется даже понятие "навигируемое свойство")) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2014, 16:38 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Brendan Bennon опубликовал свои архивы различных маппингов. Возможно кому-нибудь будет интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:41 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
БредятинаДо сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно. Эпиграфы на выбор: "Кто о чем, а вшивый о бане." "Вся рота идет не в ногу, я один иду в ногу". Всем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности. Честь и хвала Вам за это. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 16:27 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Мой опыт, конечно, не эталон, но лично я в своих проектах никогда не использую Relationship. Использую самописные классы для хранения связей. Для больших БД тут и производительность не на последнем месте, да и как-то увереннее себя чувствуешь, когда полностью понимаешь, что происходит, и имеешь full-control. ИМХО, Relationship не вполне надежны и сколонны ко всяческим трудноотлаживаемым "взбрыкиваниям", для усмирения которых иногда нужно быть не меньше, чем servit'ом. Но не всем дано... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 16:35 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUyВсем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности...Когда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее; существует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2016, 11:40 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovКогда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее 9651637 Alexey Maslovсуществует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения 9645879 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2016, 16:09 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
servit, Очень не хочется ворошить прошлое, но 2-ая ссылка говорит лишь о том, что subj было не скачать 5 лет назад. Позднее, года через 3, известное лицо ответило одному из форумчан на вопрос о ссылке что-то наподобие "вам это не нужно". С другой стороны, отсутствие чего-либо в свободном доступе ещё ничего не доказывает. Возможно, это ещё один хорошо охраняемый секрет, выросший в недрах известного всем нам хорошо охраняемого секрета . ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2016, 16:50 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslovно 2-ая ссылка говорит лишь о том, что subj было не скачать 5 лет назад.Alexey Maslov("да и был ли мальчик") ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2016, 16:55 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslov, подтверждаю "мальчик жив" - концепция объектов и экземпляров объектов, с двунаправленными связями между ними - достаточно интересная. Учитывая использование в промышленности - система, имхо, доказала свою жизнеспособность. На нее, кстати, вполне настраиваются SQL проекции Caché :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 12:46 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
doublefintУчитывая использование в промышленности - система, имхо, доказала свою жизнеспособность.Т.е. у вас есть положительный опыт использования X-Magic (или как там правильно)? Рад слышать, что система работает не только в руках её авторов, и что она вообще жива. "Пусть расцветают 100 цветов, пусть соседствуют 100 школ" - в хорошем смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 15:01 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovТ.е. у вас есть положительный опыт использования X-Magic (или как там правильно)? Рад слышать, что система работает не только в руках её авторов, и что она вообще жива. У меня есть. В 2009-2010 годах. Сам по себе движок (engine) работал хорошо. Но ввиду на 100% морально устаревшего интерфейса (ну очень тяжело и малопроизводительно было с ней взаимодействовать) от этой IDE пришлось отказаться. Жива ли сейчас - понятия не имею. Думаю, что уже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 23:26 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUyAlexey MaslovТ.е. у вас есть положительный опыт использования X-Magic (или как там правильно)? Рад слышать, что система работает не только в руках её авторов, и что она вообще жива. У меня есть. В 2009-2010 годах. Сам по себе движок (engine) работал хорошо. Но ввиду на 100% морально устаревшего интерфейса (ну очень тяжело и малопроизводительно было с ней взаимодействовать) от этой IDE пришлось отказаться. Жива ли сейчас - понятия не имею. Думаю, что уже нет. Важно не путать IDE X.Magic и СУБД X.Magic. Я имел честь работать вместе с идеологом СУБД Информ ИКС, Чернышевым Андреем Леонидовичем, а также успел поучаствовать в разработке и того и другого продукта, поэтому могу рассказать про эти две большие разницы. Изначально СУБД X.Magic называлась объектная СУБД Информ ИКС и когда я пришел в компанию в 1996-м (или 1997-м) году, на этой объектной СУБД уже делали корпоративные промышленные приложения с сотнями одновременных пользователей. Интерфейс был терминальным естественно, но это в промышленности никого не смущало. По поводу СУБД - скажу что лучше СУБД по простоте разработки бизнес-логики и по близости к предметной области я не встречал еще (хотя видел много, разумеется). Возможно на мой восторг влияет факт, что это вообще было первое мое знакомство с какой-либо СУБД, но где вы встретите сейчас нативное многие-ко-многим, обязательную семантику связей между сущностями и навигацию по экземплярам (кроме онтологий)? А это уже было в СУБД Информ ИКС в 1997. Плюс развитая библиотека функций манипулирования данными сущностей в приложении (на это есть потуги в Cache например в виде автоматически генерируемых методов открытия экземпляров по уникальному значению индексированного свойства, но это слезы по сравнению с тем что было(и есть?) в Информ ИКС. Да, не было SQL, но был визуальный генератор запросов по сущностям, результатом сохранения которого была семантически связанная цепочка сущностей с наложенными условиями на свойства и связи. Т.е. не получалось делать бессмысленных запросов (хотя они возможно и нужны иногда). Был сделан (в том числе мной) оптимизатор запросов, который выбирал оптимальный набор индексов место начала отбора в зависимости от статистики. Были свои транзакции, что собственно позволял делать то, что называется snapshot - целостные отчеты. Все это помогало очень быстро делать хорошо поддерживаемые решения в области корпоративных учетных информационных систем. Одна была проблема - новые заказчики хотели новые интерфейсы: модные виндовые окошки. А с терминальными что делать? Жалко же... Да и писать бизнеслогику приложения хотелось на Cache. Ну вот и появился X.Magic - делаешь описание формы в дизайнере, по событиям пишешь бизнес-логику на COS/MUMPS/ИКС 1 раз (и не на дельфи/java и прочих) и проигрываешь результат на терминале или windows плеере. Отсюда и название X.Magic - ИКС, который делает "магию" множественных плееров. Сложный получился проект, потому что слишком уж разные конечные устройства. Но мы это сделали. Пили мы эту штуку вдвоем, я ушел из компании до выхода творения в продакшен, но весьма близко к релизу. По крайней мере навигатор уже работал в двух интерфейсах. Как я понял, продакшен состоялся и весь продукт решили назвать X.Magic, включающий СУБД, Навигатор по данным и IDE. Если что напутал - тут бывают люди из Информ ИКС, поправят. В целом впечатления от СУБД Информ ИКС/X.Magic самые положительные. От X.Magic как IDE - идея отличная, но с реализацией намучались (впрочем в немалой степени из-за глючности Delphi/Windows и малого числа разработчиков). По СУБД помню все было супер, кроме не очень шустрых транзакций (из-за как раз собственной реализации уровней целостности). Но это думаю можно было пофиксить. Знаю, что еще несколько проектов сейчас работает на этой СУБД, но вот делаются ли новые системы - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 01:55 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Шваров ЕвгенийНу вот и появился X.Magic - делаешь описание формы в дизайнере, по событиям пишешь бизнес-логику на COS/MUMPS/ИКС 1 раз (и не на дельфи/java и прочих) и проигрываешь результат на терминале или windows плеере. Отсюда и название X.Magic - ИКС, который делает "магию" множественных плееров.Наш инструмент - qWORD - прошёл чем-то похожий путь развития: в конце 90x существовала версия, работавшая и на терминалах, и в графике. Весёлое было время, помню шуточки: "Полюбила парня я, оказался без ГУЯ". Довольно быстро выяснилось, что подобные гибридные решения никому, по сути, не нужны: старые клиенты использовали предыдущие версии продукта (чисто терминальные) и подвигнуть их на крупный апгрэйд было сложно (тут ещё и кризисы всевозможные случились), а новым было сложно объяснить некоторые ограничения GUI совместимостью с CHUI: им хотелось красоты, терминалов у них не было и не ожидалось. Поэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 11:44 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovШваров ЕвгенийНу вот и появился X.Magic - делаешь описание формы в дизайнере, по событиям пишешь бизнес-логику на COS/MUMPS/ИКС 1 раз (и не на дельфи/java и прочих) и проигрываешь результат на терминале или windows плеере. Отсюда и название X.Magic - ИКС, который делает "магию" множественных плееров.Наш инструмент - qWORD - прошёл чем-то похожий путь развития: в конце 90x существовала версия, работавшая и на терминалах, и в графике. Весёлое было время, помню шуточки: "Полюбила парня я, оказался без ГУЯ". Довольно быстро выяснилось, что подобные гибридные решения никому, по сути, не нужны: старые клиенты использовали предыдущие версии продукта (чисто терминальные) и подвигнуть их на крупный апгрэйд было сложно (тут ещё и кризисы всевозможные случились), а новым было сложно объяснить некоторые ограничения GUI совместимостью с CHUI: им хотелось красоты, терминалов у них не было и не ожидалось. Поэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой. Алексей, а может статью на Хабр про СУБД qWord? Как появилась и зачем, что сейчас, перспективы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 14:48 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovCHUI Что это? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 15:18 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovПоэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой. Пытались мы у себя в Сургуте в 2003 году освоить этот самый qWORD-XML. Не пошло. Не помню уже по какой причине. Кажется, административного характера. Решения менялись как в кувырк-коллегии. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 16:20 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Помню еще тогда же изучал книгу, изданную СП.АРМом. Два автора были: один - Веселов, другой - тоже как-то на -ов, но не помню. Веселов, кажется, уже ушел из жизни :(( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 16:23 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Шваров Евгений...может статью на Хабр про СУБД qWord? Как появилась и зачем, что сейчас, перспективы?Одну публикацию нашёл с ходу, возможно есть и ещё. Насчёт хабра передам авторам. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 20:38 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUy...изучал книгу, изданную СП.АРМом. Два автора были: один - Веселов, другой - тоже как-то на -ов, но не помню. Веселов, кажется, уже ушел из жизни :((Про Валерия Веселова, увы, верно. Если честно, про эту книгу впервые слышу. Надо будет поспрашивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 20:43 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
eduard93Alexey MaslovCHUI Что это?Эдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 20:47 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Вспомнил второго автора - Анатолий Долженков! А вот название, увы, не могу вспомнить. Слабеет память, видимо, уже берут своё года :( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 21:27 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovЭдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли. Общеупотребительное название терминального интерфейса - CLI . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 23:15 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
eduard93Alexey Maslov]Эдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли. Общеупотребительное название терминального интерфейса - CLI . Раньше очень употребительное и единственное известное было CHUI ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 02:37 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
eduard93Общеупотребительное название терминального интерфейса - CLI .Командная строка - лишь частный случай. В 90-ые термин CHUI появился по аналогии с GUI. Так стали называть (иногда весьма развитый) интерфейс на основе экранных форм, выпадающих меню и т.д. - всего, что было доступно с клавиатуры и отображалось в текстовом режиме монитора. Его можно встретить и сегодня. Примеры: far, mc, в мире MUMPS: altNC. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 10:01 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUyБредятинаДо сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно. Эпиграфы на выбор: "Кто о чем, а вшивый о бане." "Вся рота идет не в ногу, я один иду в ногу". Всем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности. Честь и хвала Вам за это. Серьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 01:52 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey MaslovEvLaUyВсем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности...Когда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее; существует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения. Именно лень. Наш главный недостаток)) Все неправильно, и ничего не существует)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 01:56 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
БредятинаСерьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность)) Я не собираюсь заниматься с Вами синхронизацией наших глоссариев, это заведомо неконструктивное занятие. И я, и другие участники этого форума (сам читал) дают Вам один и тот же совет: ПУБЛИКУЙТЕСЬ! Но Вы упорно не хотите (или не можете) ему последовать. Вы лучше всех разбираетесь в базах данных, но Вам, похоже, жалко поделиться знаниями с другими. Ваше право, но Вы ведь уже разменяли седьмой десяток. Как сказал главный герой (по сюжету - крупный ученый) фильма "Всё остается людям", блестяще сыгранный Николаем Черкасовым: "Туда с собой я ничего не возьму. Всё остаётся людям". Дай Вам Бог здоровья и долгих лет жизни, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 16:01 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUyБредятинаСерьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность)) Я не собираюсь заниматься с Вами синхронизацией наших глоссариев, это заведомо неконструктивное занятие. И я, и другие участники этого форума (сам читал) дают Вам один и тот же совет: ПУБЛИКУЙТЕСЬ! Но Вы упорно не хотите (или не можете) ему последовать. Вы лучше всех разбираетесь в базах данных, но Вам, похоже, жалко поделиться знаниями с другими. Ваше право, но Вы ведь уже разменяли седьмой десяток. Как сказал главный герой (по сюжету - крупный ученый) фильма "Всё остается людям", блестяще сыгранный Николаем Черкасовым: "Туда с собой я ничего не возьму. Всё остаётся людям". Дай Вам Бог здоровья и долгих лет жизни, конечно. Именно так. Для меня детальное обсуждения любого вопроса (которое невозможно заменить никакими публикациями) - это заведомо конструктивное занятие, а для Вас - заведомо неконструктивное. И я с большим терпением и тщательностью все всегда объясняю, или, наоборот, выясняю. Это все прекрасно знают. Поэтому "жалко поделиться знаниями" - это Вы меня с кем-то спутали. Как раз Ваше право - игнорировать. А у меня нет такого права - не объяснять))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 20:23 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Чем, например, плоха публикация: http://www.sql.ru/forum/973198/db-specific-orm?hl=orm Хороший план, структура, глубина проработки деталей))) И почитали ее много людей. И всем можно было что-угодно выяснить для себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 20:31 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Бредятина, дискуссия на некоем форуме - это публикация?! Оригинально. Интересно, ВАК РФ уже согласился в этом с Вами? И сервисы, вычисляющие индекс цитирования, согласились тоже? Я соглашусь обязательно. Но только после них. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 21:52 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
БредятинаИменно так. Для меня детальное обсуждения любого вопроса (которое невозможно заменить никакими публикациями) - это заведомо конструктивное занятие, а для Вас - заведомо неконструктивное. Что ж, на вкус и цвет... Как говорит один мой хороший знакомый, между прочим, доктор философских наук, которого я очень уважаю: "Категорически не согласен с тем, что в споре рождается истина. В споре она умирает". Полностью его в этом поддерживаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 21:55 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Один хороший знакомый EvLaUyКатегорически не согласен с тем, что в споре рождается истина. В споре она умирает."...не согласен" - признак участия в споре, пусть даже заочном. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 11:08 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Alexey Maslov, ну Вы же понимаете, что самоотнесение понятий может далеко завести. Это уже из области "кто бреет цирюльника, который бреет только тех, кто не бреется сам". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 12:28 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUy, конечно, понимаю. Кто не знает Бородатого Цирюльника? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 17:05 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
EvLaUyБредятина, дискуссия на некоем форуме - это публикация?! Оригинально. Интересно, ВАК РФ уже согласился в этом с Вами? И сервисы, вычисляющие индекс цитирования, согласились тоже? Я соглашусь обязательно. Но только после них. А вот это уже не просто оригинально. Вас оказывается интересуют не Ваши знания, а мои публикации))) Меня они никогда не интересовали. Меня всегда интересовали именно знания. Сервис уже вычислил, что эту публикацию (как и многие другие) посмотрели (конечно, нельзя сказать - прочитали) более 30 тысяч человек. И мне всегда было достаточно, чтобы понял один - это уже был бы отличный результат. Если все всё понимают, значит это какие-то банальности, которые даже и произносить не стоило... А Вы, конечно, дождитесь, когда ВАК РФ сообщит, что он разобрался в теории и практике баз данных))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 18:28 |
|
Из глобалов в sql
|
|||
---|---|---|---|
#18+
Пока эта тема не разрослась, из-за взаимных обвинений да и различных споров, во многом, не относящихся к теме, предлагаю админам устранить т.с. "яблоко раздора" на корню, а именно, убрать из темы провокационные сообщения. А то парни горячие, да еще и мастера эпистолярного жанра, легко испишут несколько страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2016, 11:29 |
|
|
start [/forum/topic.php?all=1&fid=39&tid=1556520]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 431ms |
0 / 0 |