powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Перенос данных из одного глобала в другой
5 сообщений из 5, страница 1 из 1
Перенос данных из одного глобала в другой
    #37407076
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Был класс myClass Extends %Persistent. В него записали кучу данных. Потом решили создать общий для всех класс OurPersistent (наследующий %Persistent) и наследовать все классы от него. И теперь встала проблема: как перемещать данные из одного глобала в другой, чтобы сохранились ссылки и связи. Структура класса остаётся той же, только меняется наследуемый класс (вместо Extends %Persistent теперь Extedns OurPersistent). Вопрос знатокам ) Как осуществить такой перенос, есть ли уже готовые инструменты в каше?
...
Рейтинг: 0 / 0
Перенос данных из одного глобала в другой
    #37407093
andrew_tsw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Вашем случае есть один неочевидный момент: при наследовании
Код: plaintext
myClass Extends %Persistent
все данные myClass хранятся в одном глобале. А при наследовании
Код: plaintext
myClass Extends OurPersistent
данные ВСЕХ классов, унаследованных от OurPersistent будут храниться в одном глобале. Ели так и было задумано - то все хорошо.
Чтобы все наследники OurPersistent хранились в отдельных глобалах, нужно наследоваться сначала от %Persistent а потом от OurPersistent
Код: plaintext
myClass Extends (%Persistent, OurPersistent)
Если Вы хотели унаследовать от OurPersistent только базовые методы, а не структуру хранения - ничего переносить не нужно.
...
Рейтинг: 0 / 0
Перенос данных из одного глобала в другой
    #37407099
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, как. Спасибо, чё-то совсем забыл про это. Вообще думали запихать всё в один глобал, но раз так, меньше мороки будет. Действительно, по сути, нужны только методы основного класса, а будут ли данные храниться в одном или нескольких глобалах - вроде не особо важно.
...
Рейтинг: 0 / 0
Перенос данных из одного глобала в другой
    #37407318
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vixler,
можно сделать класс

Class OurPersistent Extends %Library.Persistent [ Abstract, ClassType = ""]

и от него наследоваться, добавить или переопределить методы, если надо
Каждый класс унаследованный будет иметь свой глобал для хранения, как и ранее.
...
Рейтинг: 0 / 0
Перенос данных из одного глобала в другой
    #37408472
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vixler,
используя конструкцию
Class OurPersistent Extends %Library.Persistent [ Abstract, ClassType = ""]
можно в этом классе определить не только наследуемые методы, но и наследуемые свойства, которые будут присутствовать во всех унаследованных классах со своими структурами хранения.

Обычно это бывает удобно, если вы делите всю базу с одинаковым функционалом для нескольких групп пользователей, но с независимыми данными в разных группах (типа доменов в Гугл аппс).

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


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