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

Т.е. стандартный вариант

Код: vbnet
1.
s ^tmp.testD(<ID>)=$lb(<val1>,<val2>,...,<valN>)



Меняет на

Код: vbnet
1.
2.
3.
4.
s ^tmp.testD(<ID>,<fld1>)=<val1>
s ^tmp.testD(<ID>,<fld2>)=<val2>
...
s ^tmp.testD(<ID>,<fldN>)=<vaN1>



Может есть вариант с наследованием, дабы один раз описать такое и потом наследоваться?

Просто надоело уже дырки в $LB() "затыкать"...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37719433
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вы можете сделать свое собственное хранение.
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37719507
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да описанием своего способа хранения, можно придумать все что угодно, для описания способа хранения есть визуальный редактор, для удобства.
так же полагаю, что можно сделать метод вызываемый перед компиляцией, который бы мог править существующие хранение добавляя поля добавленные программистом, чтобы ему не приходилось каждый раз еще и править хранение
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37719951
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Да, вы можете сделать свое собственное хранение.
Это-то понятно...

Но не хочется делать манипуляции для каждого класса...

Посмотрел так же работу со стораджем... Она теперь вовсе не такая как была ранее. Есть 3 варианта:
- $LB()
- одно значение
- массив

Второй явно неподходит... С третьим полная непонятка...
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37719952
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorтак же полагаю, что можно сделать метод вызываемый перед компиляцией, который бы мог править существующие хранение добавляя поля добавленные программистом, чтобы ему не приходилось каждый раз еще и править хранение
И такое так же не хотелось бы делать...
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721048
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaИ такое так же не хотелось бы делать...
Остап БендерКиса, скажите мне как художник художнику...вы рисовать умеете?
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721125
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это 5!
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721155
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , нет, рисовать не умею...
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721284
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, у каждого свои недостатки... что насчет чувства юмора? ;(
Можно по-подробнее про "дырки" $LISTBUILD?
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721469
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintМожно по-подробнее про "дырки" $LISTBUILD?
Там все элементы, в том числе и свойства, имеют статичную позицию в $LB()... В ходе эксплуатации ПО свойства добавляются, удаляются... И в $LB() образуются "дырки".
Т.е. если удалили свойства с позициями pN и pM, то в $LB() в позициях pN и pM останутся старые данные, а в новых экземплярах будут ""...
Дабы такого небыло, приходится проводить профилактические мероприятия:
- удалять хранение класса
- заново компилить класс
- анализировать как теперь располагаются свойства относительно позиций их данных в $LB()
- выполнять перепресвоение данных в их же свойства, дабы они "встали" в нужные позиции $LB()
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721484
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жесть какая-то. Зачем удалять хранение? Там же данные лежат.

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

Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721545
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Зачем удалять хранение? Там же данные лежат.
Данные лежат в глобале, а не в описании хранения...

Блок А.Н.Чем вам мешают дырки? Места они практически не занимают.
Или у вас десятки раз в классе удаляются и добавляются поля?
Они мне не нравятся. Сплю плохо из-за этого...
Да. Структура меняется по прошествии лет часто...

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

Блок А.Н.Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
Подземный ход на чердак можно рыть долго и нудно...
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721560
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaБлок А.Н.Зачем удалять хранение? Там же данные лежат.
Данные лежат в глобале, а не в описании хранения... Да, я в курсе. Все-таки столько лет уже...
Но без метаданных или с поврежденными метаданными можно сказать, что данные теряются.

krvsaБлок А.Н.Чем вам мешают дырки? Места они практически не занимают.
Или у вас десятки раз в классе удаляются и добавляются поля?
Они мне не нравятся. Сплю плохо из-за этого... Дык это на форум взаимопомощи анонимных программистов.

krvsaБлок А.Н.Тогда странно, нужно что-то делать с иделогией хранения вообще.
Например поля в узлах, как я уже описал, нам подошли бы идеально. Но мастер в сторадже уже не такой как ранее был и как там сделать такое я уже х/з...
Да и объяснять какжыё раз каждому прогеру дюже утомительно. Проверяй потом не ошиблись ли где...
Если хз - то значит вы не пробовали, и все ваши причины отказа - отмазки.
А вы попробуйте, там ничего страшного нет, хотя и не все очевидно. Тем более, если в старом мастере вы это делали, то и в новом сделаете. А после того, как сделаете руками - можете попробовать автоматизировать это процесс

krvsaБлок А.Н.Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
Подземный ход на чердак можно рыть долго и нудно... Как вам пытался намекнуть doublefint - вы программист или где?
Вам не нравится стардартный механизм, но нестандартный вы реализовывать отказываетесь. Тут уж надо одно из двух.
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37721863
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Дык это на форум взаимопомощи анонимных программистов.
Если там могут предложить некий простой и приемлемый способ - мне не особо важно кто его предложил...

Блок А.Н.Как вам пытался намекнуть doublefint - вы программист или где?
Я не программер. И мне не нужны такие заморочки. Меня устроит только простое решение проблемы...
Пока это простое "удаление" "дыр" время от времени... Раз в год напроимер.
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37726191
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaесть ли некий переключатель в описании класса, позволяющий, хранить данные класса не в $LB, а в узлах?Стандартного переключателя нет.
krvsaПросто надоело уже дырки в $LB() "затыкать"...
...
Т.е. если удалили свойства с позициями pN и pM, то в $LB() в позициях pN и pM останутся старые данные, а в новых экземплярах будут ""...
...
Они мне не нравятся. Сплю плохо из-за этого...Перед удалением поля очищайте его: update tbl set field=null
При добавлении нового поля вставляйте его на место удалённых полей.
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37727496
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitПеред удалением поля очищайте его: update tbl set field=null
При добавлении нового поля вставляйте его на место удалённых полей.
Мы пока просто "чистим" классы с некой периодичностью и все...
Не вижу смысла заставлять программистов проделывать таки манипуляции с классом всякий раз...
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37741983
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне пожалуйста, почему дырки вам мешают?
Они занимают лишнее место? - ваш способ хранения более избыточен.
Скорость? - сомневаюсь, что обращение к каждому подузлу глобала будет лучше, чем разобрать в памяти $LB
...
Рейтинг: 0 / 0
Данные класса не в $LB, а в узлах
    #37742284
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosОбъясните мне пожалуйста, почему дырки вам мешают?
Я вроде как написал уже про это выше...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные класса не в $LB, а в узлах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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