powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Из глобалов в sql
62 сообщений из 62, показаны все 3 страниц
Из глобалов в sql
    #38702973
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую создать классы на основе глобалов.
Пока структура была простая, все получалось.
А теперь чуть сложнее и выходит ошибка

Код: plaintext
ОШИБКА #5316: Циклическая зависимость для класса 'Lena.Authors,Lena.Book'
Структура глобала такая:^book(17,"at",1)="Иванов А.П."
^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>Помогите разобраться, что я не так делаю.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703026
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl,
Добрый день.

Статью смотрели? Там есть и не только простые примеры.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703091
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров Евгений, по ней и пыталась сделать.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703106
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделала способ хранения, больше похоже на то, что в примере, но все равно на цикл ругается.<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>
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703123
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl,

Эта ошибка не из-за Storage.
Какое отношение между Book и Authors?
Одной книге соответствует много авторов и каждому автору соответствует одна книга?

Странно, что в классе Book, свойство ID — коллекция авторов, является IdKey. Может быть, вам нужно создать отдельное свойство для списка авторов?:Relationship Authors As Lena.Authors [ Cardinality = children, Inverse = BkId ];

Index BookId On ID [ IdKey, PrimaryKey, Unique ];
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703142
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Александр КобловКакое отношение между 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.1.INT(819) ERROR #1054: Invalid expression : '%objcsd(%qHandle,6)=()' : Offset:25 [%0ZmBk1+4^Lena.Book.1]
 TEXT:  s %objcsd(%qHandle,6)=()

Что-то совсем непонятно, что тут имеется в виду.

Классы при этом скомпилировались, но при попытке запроса ругаются, что возникла ошибка при компиляции класса Lena.Book.

Может быть, я неправильно поняла смысл отношений...
Автор задается ID книги,"at",номером автора.
Мне казалось, что отношение должно ссылаться на ID книги. Типа foreign key. А тут оно сослалось вообще на что-то несуществующее.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703143
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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>

}
Lena.AuthorsClass Lena.Authors Extends %Persistent [ StorageStrategy = AuthorStg ]
{

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.
USER>d $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
 
The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
USER>>select * from Lena.Book
1.      select * from Lena.Book
 
IDNameNumYear17Черный человек0199518Энциклопедия кошек12009
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.
USER>zw ^book
^book(17,"at",1)="Иванов А.П."
^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
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703151
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

Спасибо большое. Буду разбираться, что не так.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703242
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl,

надеюсь, что более опытные товарищи ещё расскажут вам о том, что реализовывать отношение 1:M в виде "parent-child" в Cache' не следует никогда . Хуже будет, если этому научит жизнь :)
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703257
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Прям таки никогда?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703282
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.,

про то, почему "нельзя", написано много, в том числе на этом форуме. Вот хороший пример от иностранных коллег . В двух словах: медленный поиск по "child"ам, если "parent"ы хорошо "набиты данными". Если кому-то нужен более подробный пересказ, пишите ))

Будет интересно, если Вы напишете, когда "можно", и какие преимущества достигаются при этом перед "one-many".
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703323
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Например, parent - класс-пустышка, а child-история его изменений. Причем наиболее частым запросом будет "получить состояние объекта на ..."
Преимущество - близкое хранение данных одного родителя.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703456
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот схему как в стартовом посте я бы точно не рекомендовал. Раздувает глобал неимоверно.
Класс на него лепить есть смысл только если данные уже есть и программы с ними работают. И для того, чтобы программы переписать на объекты\sql, а потом изменить структуру.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703483
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.
Класс леплю только для того, чтобы поучиться лепить классы. -))

Alexey Maslov
А как правильно делать связь 1:M?
Или это на уровне глобала надо было другую структуру делать? Заводить отдельный глобал ^authors(Id,BookId)="name"?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703545
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю класс выдачи книг.
Связь много к многим.
Опять на что-то непонятное мне ругается.

Код: plaintext
ОШИБКА #5547: В выражении извлечения значения неверная конструкция '{Dgive}'. Здесь должно быть обращение к полю. Если работа идет с Master Map, поле должно быть идентификатором.
Глобал, класс, хранение:Структура глобала:^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"
Класс:Class Lena.Lib Extends %Persistent [ StorageStrategy = LibStrg ]
{
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
ОШИБКА #5585: Не удалось определить RowID для класса Lena.Lib, карты LibMap, поля Lena.Lib.Rid. RowID должен быть определен вручную для этой карты.

Если определяю 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.
Lena.Lib.1.INT(527) ERROR #1054: Invalid expression : '%objcsd(%qHandle,6)=()_"||"_()_"||"_(),%objcsd(%qHandle,7)=$s($zu(115,5)=2:$$%0MmBs1(%objcsd(%qHandle,6)),1:%objcsd(%qHandle,6))' : Offset:25 [%0MmBk1+2^Lena.Lib.1]
 TEXT:  s %objcsd(%qHandle,6)=()_"||"_()_"||"_(),%objcsd(%qHandle,7)=$s($zu(115,5)=2:$$%0MmBs1(%objcsd(%qHandle,6)),1:%objcsd(%qHandle,6))
Lena.Lib.1.INT(614) ERROR #1054: Invalid expression : 'id=()_"||"_()_"||"_()' : Offset:8 [%0TmBk1+2^Lena.Lib.1]
 TEXT:  s id=()_"||"_()_"||"_()
Lena.Lib.1.INT(650) ERROR #1054: Invalid expression : '%mmmsqld(5)=()_"||"_()_"||"_()' : Offset:17 [%0VmBk1+2^Lena.Lib.1]
 TEXT:  s %mmmsqld(5)=()_"||"_()_"||"_()
Lena.Lib.1.INT(685) ERROR #1054: Invalid expression : 'id=()_"||"_()_"||"_()' : Offset:8 [%0XmBk1+2^Lena.Lib.1]
 TEXT:  s id=()_"||"_()_"||"_()
Lena.Lib.1.INT(721) ERROR #1054: Invalid expression : 'id=()_"||"_()_"||"_()' : Offset:8 [%0ZmBk1+2^Lena.Lib.1]
 TEXT:  s id=()_"||"_()_"||"_()
Lena.Lib.1.INT(757) ERROR #1054: Invalid expression : '%mmmsqld(5)=()_"||"_()_"||"_()' : Offset:17 [%01mBk1+2^Lena.Lib.1]
 TEXT:  s %mmmsqld(5)=()_"||"_()_"||"_()
Lena.Lib.1.INT(792) ERROR #1054: Invalid expression : 'id=()_"||"_()_"||"_()' : Offset:8 [%03mBk1+2^Lena.Lib.1]
 TEXT:  s id=()_"||"_()_"||"_()
Lena.Lib.1.INT(833) ERROR #1054: Invalid expression : '%mmmsqld(9)=()_"||"_()_"||"_()' : Offset:17 [%05o+8^Lena.Lib.1]
 TEXT:  s %mmmsqld(9)=()_"||"_()_"||"_()
Lena.Lib.1.INT(885) ERROR #1054: Invalid expression : '%mmmsqld(7)=()_"||"_()_"||"_(),id=$s($zu(115,5)=2:$$%07mBs1(%mmmsqld(7)),1:%mmmsqld(7))' : Offset:17 [%07o+8^Lena.Lib.1]
 TEXT:  s %mmmsqld(7)=()_"||"_()_"||"_(),id=$s($zu(115,5)=2:$$%07mBs1(%mmmsqld(7)),1:%mmmsqld(7))
Подскажите, плз, что конкретно ему не нравится?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703635
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov ,

"Никогда не говори никогда."
"Всё хорошо в меру."

Пошерстите системные хранимые классы и Вы найдёте множество примеров с использованием отношения parent-children:
  • Тест : результаты
  • Транзакция : записи
  • Роль : ресурсы
  • ...
е́ в голове будет каш а .
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703636
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl ,

Совет:
Один файл проекта (*.PRJ) со всеми классами (*.CLS) и данными (*.GBL) лучше длинной простыни с разрозненным неполным, а потому нерабочим, кодом.
К тому же это сильно увеличивает как скорость ответа, так и шансы на само его наличие.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703735
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,
я, конечно, идиот, но нашла только как экспортировать проект в xml через студию и как экспортировать глобалы в формате *.gof через портал.
Это оно или не то?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703748
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl ,

%SYSTEM.OBJ.Export
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703797
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, получилось :))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703820
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)=""

Эта модель всё равно сильно упрощённая, т.к. не отслеживаются различные издания той же книги, переводы на другие языки и пр.

Ну и как совершенно справедливо заметил А.Н.Блок, заниматься отображением глобалов в хранимые классы в новых проектах смысла нет, делайте сразу на классах.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38703965
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 здесь излишен .
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38704016
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit Спасибо огромное! Заработало! =))
Alexey Maslov меня на новой работе пока заставляют работать в терминале (учусь), просто наткнулась на статью на хабре про работу с глобалами через sql и решила попробовать. Раньше же oracle dba была -))))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38704127
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl... меня на новой работе пока заставляют работать в терминале...Жёстко, но может и правильно, ибо "все великие дела творятся в командной строке".
Удачи!
...
Рейтинг: 0 / 0
Из глобалов в sql
    #38708352
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь: чем отличается Один-ко-Многим и Родитель-Потомок...
http://lusindane.at.tut.by/files/object09.html
До сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно. Впрочем, то же самое делают и разработчики, использующие реляционные СХОД, в своих многочисленных "фреймворках"))... В последнем, который я видел, используется даже понятие "навигируемое свойство"))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Из глобалов в sql
    #39155618
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brendan Bennon опубликовал свои архивы различных маппингов.
Возможно кому-нибудь будет интересно.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39157695
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаДо сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно.
Эпиграфы на выбор:
"Кто о чем, а вшивый о бане."
"Вся рота идет не в ногу, я один иду в ногу".

Всем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности. Честь и хвала Вам за это.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39157699
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой опыт, конечно, не эталон, но лично я в своих проектах никогда не использую Relationship. Использую самописные классы для хранения связей. Для больших БД тут и производительность не на последнем месте, да и как-то увереннее себя чувствуешь, когда полностью понимаешь, что происходит, и имеешь full-control. ИМХО, Relationship не вполне надежны и сколонны ко всяческим трудноотлаживаемым "взбрыкиваниям", для усмирения которых иногда нужно быть не меньше, чем servit'ом. Но не всем дано...
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39158344
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUyВсем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности...Когда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее; существует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39158662
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovКогда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее 9651637 Alexey Maslovсуществует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения 9645879
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39158729
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Очень не хочется ворошить прошлое, но 2-ая ссылка говорит лишь о том, что subj было не скачать 5 лет назад. Позднее, года через 3, известное лицо ответило одному из форумчан на вопрос о ссылке что-то наподобие "вам это не нужно".
С другой стороны, отсутствие чего-либо в свободном доступе ещё ничего не доказывает. Возможно, это ещё один хорошо охраняемый секрет, выросший в недрах известного всем нам хорошо охраняемого секрета .
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39158740
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovно 2-ая ссылка говорит лишь о том, что subj было не скачать 5 лет назад.Alexey Maslov("да и был ли мальчик")
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39158748
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

увы, это так и осталось тайной
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39161866
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov, подтверждаю "мальчик жив" - концепция объектов и экземпляров объектов, с двунаправленными связями между ними - достаточно интересная. Учитывая использование в промышленности - система, имхо, доказала свою жизнеспособность. На нее, кстати, вполне настраиваются SQL проекции Caché :)
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39162063
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintУчитывая использование в промышленности - система, имхо, доказала свою жизнеспособность.Т.е. у вас есть положительный опыт использования X-Magic (или как там правильно)? Рад слышать, что система работает не только в руках её авторов, и что она вообще жива.

"Пусть расцветают 100 цветов, пусть соседствуют 100 школ" - в хорошем смысле.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39162476
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovТ.е. у вас есть положительный опыт использования X-Magic (или как там правильно)? Рад слышать, что система работает не только в руках её авторов, и что она вообще жива.
У меня есть. В 2009-2010 годах. Сам по себе движок (engine) работал хорошо. Но ввиду на 100% морально устаревшего интерфейса (ну очень тяжело и малопроизводительно было с ней взаимодействовать) от этой IDE пришлось отказаться. Жива ли сейчас - понятия не имею. Думаю, что уже нет.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39162519
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 и малого числа разработчиков).
По СУБД помню все было супер, кроме не очень шустрых транзакций (из-за как раз собственной реализации уровней целостности).
Но это думаю можно было пофиксить. Знаю, что еще несколько проектов сейчас работает на этой СУБД, но вот делаются ли новые системы - не знаю.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39162784
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийНу вот и появился X.Magic - делаешь описание формы в дизайнере, по событиям пишешь бизнес-логику на COS/MUMPS/ИКС 1 раз (и не на дельфи/java и прочих) и проигрываешь результат на терминале или windows плеере. Отсюда и название X.Magic - ИКС, который делает "магию" множественных плееров.Наш инструмент - qWORD - прошёл чем-то похожий путь развития: в конце 90x существовала версия, работавшая и на терминалах, и в графике. Весёлое было время, помню шуточки: "Полюбила парня я, оказался без ГУЯ".
Довольно быстро выяснилось, что подобные гибридные решения никому, по сути, не нужны: старые клиенты использовали предыдущие версии продукта (чисто терминальные) и подвигнуть их на крупный апгрэйд было сложно (тут ещё и кризисы всевозможные случились), а новым было сложно объяснить некоторые ограничения GUI совместимостью с CHUI: им хотелось красоты, терминалов у них не было и не ожидалось. Поэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163004
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovШваров ЕвгенийНу вот и появился X.Magic - делаешь описание формы в дизайнере, по событиям пишешь бизнес-логику на COS/MUMPS/ИКС 1 раз (и не на дельфи/java и прочих) и проигрываешь результат на терминале или windows плеере. Отсюда и название X.Magic - ИКС, который делает "магию" множественных плееров.Наш инструмент - qWORD - прошёл чем-то похожий путь развития: в конце 90x существовала версия, работавшая и на терминалах, и в графике. Весёлое было время, помню шуточки: "Полюбила парня я, оказался без ГУЯ".
Довольно быстро выяснилось, что подобные гибридные решения никому, по сути, не нужны: старые клиенты использовали предыдущие версии продукта (чисто терминальные) и подвигнуть их на крупный апгрэйд было сложно (тут ещё и кризисы всевозможные случились), а новым было сложно объяснить некоторые ограничения GUI совместимостью с CHUI: им хотелось красоты, терминалов у них не было и не ожидалось. Поэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой.

Алексей, а может статью на Хабр про СУБД qWord? Как появилась и зачем, что сейчас, перспективы?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163065
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovCHUI
Что это?
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163071
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93Alexey MaslovCHUI
Что это?
character user interface
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163137
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovПоэтому новая версия, вышедшая в начале нулевых и получившая название qWORD-XML, была уже чисто ГУЁвой.
Пытались мы у себя в Сургуте в 2003 году освоить этот самый qWORD-XML. Не пошло. Не помню уже по какой причине. Кажется, административного характера. Решения менялись как в кувырк-коллегии.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163142
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помню еще тогда же изучал книгу, изданную СП.АРМом. Два автора были: один - Веселов, другой - тоже как-то на -ов, но не помню. Веселов, кажется, уже ушел из жизни :((
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163355
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений...может статью на Хабр про СУБД qWord? Как появилась и зачем, что сейчас, перспективы?Одну публикацию нашёл с ходу, возможно есть и ещё. Насчёт хабра передам авторам.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163358
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUy...изучал книгу, изданную СП.АРМом. Два автора были: один - Веселов, другой - тоже как-то на -ов, но не помню. Веселов, кажется, уже ушел из жизни :((Про Валерия Веселова, увы, верно. Если честно, про эту книгу впервые слышу. Надо будет поспрашивать.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163360
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93Alexey MaslovCHUI
Что это?Эдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163373
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил второго автора - Анатолий Долженков! А вот название, увы, не могу вспомнить. Слабеет память, видимо, уже берут своё года :(
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163393
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovЭдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли.
Общеупотребительное название терминального интерфейса - CLI .
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163435
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93Alexey Maslov]Эдуард, за этот вопрос - пять баллов! Хорошо, что сообщество молодеет, жаль, что прирост медленнее убыли.
Общеупотребительное название терминального интерфейса - CLI .

Раньше очень употребительное и единственное известное было CHUI )
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39163560
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93Общеупотребительное название терминального интерфейса - CLI .Командная строка - лишь частный случай. В 90-ые термин CHUI появился по аналогии с GUI. Так стали называть (иногда весьма развитый) интерфейс на основе экранных форм, выпадающих меню и т.д. - всего, что было доступно с клавиатуры и отображалось в текстовом режиме монитора. Его можно встретить и сегодня. Примеры: far, mc, в мире MUMPS: altNC.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39167212
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUyБредятинаДо сих пор в Cache, как и в других системах хранения и обработки данных, связи между типами сущностей не поддерживаются. Связи моделируются с помощью свойств, что принцпиально неверно.
Эпиграфы на выбор:
"Кто о чем, а вшивый о бане."
"Вся рота идет не в ногу, я один иду в ногу".

Всем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности. Честь и хвала Вам за это.
Серьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39167213
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovEvLaUyВсем уже давно и хорошо известно, что в XMagic связи описываются и настраиваются как отдельные сущности...Когда-то пытались обсуждать это с Ч.А.Л., на что был получен ответ, что и в XMagic всё неправильно и вообще он не имеет к нему отношение. Лень искать топик, дело давнее; существует ли сейчас XMagic ("да и был ли мальчик"), вызывает большие сомнения.
Именно лень. Наш главный недостаток)) Все неправильно, и ничего не существует))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39167742
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаСерьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность))
Я не собираюсь заниматься с Вами синхронизацией наших глоссариев, это заведомо неконструктивное занятие. И я, и другие участники этого форума (сам читал) дают Вам один и тот же совет: ПУБЛИКУЙТЕСЬ! Но Вы упорно не хотите (или не можете) ему последовать. Вы лучше всех разбираетесь в базах данных, но Вам, похоже, жалко поделиться знаниями с другими. Ваше право, но Вы ведь уже разменяли седьмой десяток. Как сказал главный герой (по сюжету - крупный ученый) фильма "Всё остается людям", блестяще сыгранный Николаем Черкасовым: "Туда с собой я ничего не возьму. Всё остаётся людям". Дай Вам Бог здоровья и долгих лет жизни, конечно.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168031
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUyБредятинаСерьезное заблуждение. Плохо, если оно всем известно. И все от обиды на себя))) Связи - не сущности. А то, что я разбираюсь в базах данных лучше всех - это, конечно, моя вина. И я готов нести за это ответственность))
Я не собираюсь заниматься с Вами синхронизацией наших глоссариев, это заведомо неконструктивное занятие. И я, и другие участники этого форума (сам читал) дают Вам один и тот же совет: ПУБЛИКУЙТЕСЬ! Но Вы упорно не хотите (или не можете) ему последовать. Вы лучше всех разбираетесь в базах данных, но Вам, похоже, жалко поделиться знаниями с другими. Ваше право, но Вы ведь уже разменяли седьмой десяток. Как сказал главный герой (по сюжету - крупный ученый) фильма "Всё остается людям", блестяще сыгранный Николаем Черкасовым: "Туда с собой я ничего не возьму. Всё остаётся людям". Дай Вам Бог здоровья и долгих лет жизни, конечно.
Именно так. Для меня детальное обсуждения любого вопроса (которое невозможно заменить никакими публикациями) - это заведомо конструктивное занятие, а для Вас - заведомо неконструктивное. И я с большим терпением и тщательностью все всегда объясняю, или, наоборот, выясняю. Это все прекрасно знают. Поэтому "жалко поделиться знаниями" - это Вы меня с кем-то спутали. Как раз Ваше право - игнорировать. А у меня нет такого права - не объяснять)))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168037
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем, например, плоха публикация:
http://www.sql.ru/forum/973198/db-specific-orm?hl=orm
Хороший план, структура, глубина проработки деталей)))
И почитали ее много людей. И всем можно было что-угодно выяснить для себя.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168081
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,
дискуссия на некоем форуме - это публикация?! Оригинально. Интересно, ВАК РФ уже согласился в этом с Вами? И сервисы, вычисляющие индекс цитирования, согласились тоже? Я соглашусь обязательно. Но только после них.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168082
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаИменно так. Для меня детальное обсуждения любого вопроса (которое невозможно заменить никакими публикациями) - это заведомо конструктивное занятие, а для Вас - заведомо неконструктивное.
Что ж, на вкус и цвет... Как говорит один мой хороший знакомый, между прочим, доктор философских наук, которого я очень уважаю: "Категорически не согласен с тем, что в споре рождается истина. В споре она умирает". Полностью его в этом поддерживаю.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168331
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один хороший знакомый EvLaUyКатегорически не согласен с тем, что в споре рождается истина. В споре она умирает."...не согласен" - признак участия в споре, пусть даже заочном.
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168438
EvLaUy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,
ну Вы же понимаете, что самоотнесение понятий может далеко завести. Это уже из области "кто бреет цирюльника, который бреет только тех, кто не бреется сам".
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168804
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUy,
конечно, понимаю. Кто не знает Бородатого Цирюльника? :)
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39168909
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvLaUyБредятина,
дискуссия на некоем форуме - это публикация?! Оригинально. Интересно, ВАК РФ уже согласился в этом с Вами? И сервисы, вычисляющие индекс цитирования, согласились тоже? Я соглашусь обязательно. Но только после них.
А вот это уже не просто оригинально. Вас оказывается интересуют не Ваши знания, а мои публикации))) Меня они никогда не интересовали. Меня всегда интересовали именно знания. Сервис уже вычислил, что эту публикацию (как и многие другие) посмотрели (конечно, нельзя сказать - прочитали) более 30 тысяч человек. И мне всегда было достаточно, чтобы понял один - это уже был бы отличный результат. Если все всё понимают, значит это какие-то банальности, которые даже и произносить не стоило... А Вы, конечно, дождитесь, когда ВАК РФ сообщит, что он разобрался в теории и практике баз данных)))
...
Рейтинг: 0 / 0
Из глобалов в sql
    #39169357
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока эта тема не разрослась, из-за взаимных обвинений да и различных споров, во многом, не относящихся к теме, предлагаю админам устранить т.с. "яблоко раздора" на корню, а именно, убрать из темы провокационные сообщения. А то парни горячие, да еще и мастера эпистолярного жанра, легко испишут несколько страниц.
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Из глобалов в sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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